文件输入MVC 3所需的客户端验证

时间:2011-04-12 09:30:01

标签: asp.net-mvc asp.net-mvc-3 validation file-io unobtrusive-javascript

简单的问题......是否可以在类型文件的输入上使用客户端MVC 3验证?

解释:MVC 3使用IClientValidatable和不显眼的javascript进行模型验证,允许您在服务器端编写验证,并使用Microsoft的插件使用jquery validate渲染客户端。要创建属性,请在

下添加属性
[Required]
public HttpPostedFileBase CvFile {get; set;}

只要在配置中启用了客户端val和不显眼的javascript,就应该在客户端上启动。

但是HttpPostedFileBase(即<input type="file" name="Model.CvFile" />)将无法在客户端运行。

如何实现这一点,以保持与服务器端验证的关系

2 个答案:

答案 0 :(得分:27)

您需要手动添加:

<input type="file" data-val="true" data-val-required="please select a file" name="file" />
@Html.ValidationMessage("file")

答案 1 :(得分:1)

简单回答:HttpPostedFileBase呈现“文件”输入类型,这是一个安全问题,而AFAIK是不可编写脚本的。这种“开箱即用”并不支持。

编辑:这似乎是一个非常受欢迎的在线话题。 http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx