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

Jay*_*Jay 7 validation asp.net-mvc file-io unobtrusive-javascript asp.net-mvc-3

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

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

[Required]
public HttpPostedFileBase CvFile {get; set;}
Run Code Online (Sandbox Code Playgroud)

只要客户端val和不显眼的javascript在配置中打开,这应该在客户端上激活.

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

任何想法如何实现这一点保持与服务器端验证的关系

Vah*_*idN 27

您需要手动添加它:

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


Rey*_*lds 1

简单的答案:AHttpPostedFileBase呈现“文件”输入类型,这是一个安全问题,而且据我所知,不可编写脚本。不支持这种“开箱即用”。

编辑:这似乎是网上非常流行的话题。 http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCInclusionTestsAndMocks.aspx