0
我正在使用MVC2 .net并且在文件上传时遇到问题。如果文件大小超过限制,那么我想在同一页面上显示一些例外。重定向到mvc .net中应用程序错误的相同页面
我正在使用MVC2 .net并且在文件上传时遇到问题。如果文件大小超过限制,那么我想在同一页面上显示一些例外。重定向到mvc .net中应用程序错误的相同页面
在过去,我创建了一个图像大小属性并使用数据注释来验证图像。
public sealed class ImageSizeAttribute : ValidationAttribute
{
public int Width { get; set; }
public int Height { get; set; }
private const string DefaultErrorMessage = "{0} dimensions cannot be greater than {1} x {2}";
public ImageSizeAttribute(int width, int height)
: base(DefaultErrorMessage)
{
Width = width;
Height = height;
}
public override string FormatErrorMessage(string name)
{
return string.Format(CultureInfo.CurrentUICulture, ErrorMessageString, name, Width, Height);
}
public override bool IsValid(object value)
{
// Turn HttpPostedFileBase into Image and validate size...
}
}
在您的视图模型中,您现在可以添加一个属性来验证它。
[ImageSize(200, 200)]
public HttpPostedFileBase Avatar { get; set; }
在你看来要确保你至少有一个验证消息
<%= Html.ValidationMessageFor(u => u.Avatar) %>
,你可以看到这篇文章关于enabling client validation
现在在你的控制器,你可以做你验证,如果发生错误只是返回与现有模型相同的视图,您将看到错误消息。
if (ModelState.IsValid)
{
// More validation and saving.
...
return RedirectToRoute("UserDetails", ...);
}
return View(model);
嗨,也许这篇文章可以帮助http://stackoverflow.com/questions/3007737/how-can-i-handle-maxrequestlength-exceptions-elegantly – uvita 2010-08-02 12:24:50