Asp.net-Mvc

文件輸入 MVC 3 需要的客戶端驗證

  • May 27, 2015

簡單的問題…是否可以對文件類型的輸入使用客戶端 MVC 3 驗證?

解釋一下:MVC 3 將其模型驗證與 IClientValidatable 和不顯眼的 javascript 一起使用,以允許您在伺服器端編寫驗證,並使用 Microsoft 的外掛使用 jquery validate 呈現客戶端。要使屬性成為必需,請添加以下屬性

[Required]
public HttpPostedFileBase CvFile {get; set;}

只要客戶端 val 和不顯眼的 javascript 在配置中打開,這都應該在客戶端上觸發。

但是HttpPostedFileBase(即<input type="file" name="Model.CvFile" />)不需要在客戶端執行。

任何想法如何保持與伺服器端驗證的關係

簡單的答案:AHttpPostedFileBase呈現“文件”輸入類型,這是一個安全問題,而且,AFAIK,不可編寫腳本。不支持這種“開箱即用”。

編輯:這似乎是一個非常流行的線上話題。 http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx

您需要手動添加它:

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

引用自:https://stackoverflow.com/questions/5633092