Asp.net-Mvc-4
無法讓 MVC 4 FileExtensions 屬性在 ViewModel 屬性上工作
我需要上傳一個 csv 文件,並且我想將它的副檔名限制為 .csv
所以我在我的 ViewModel 中添加了以下屬性:
[FileExtensions(ErrorMessage = "Must choose .csv file.",Extensions = "csv,txt")] public HttpPostedFileBase File { get; set; }在我看來,我有以下幾點:
@Html.TextBoxFor(m => m.File, new { type = "file"}) @Html.ValidationMessageFor(m => m.File)但是,一旦它點擊我的“ModelState.IsValid”檢查,它就會返回無效,並顯示我的錯誤消息“必須選擇 .csv 文件”。
我假設我只是缺少一個參數,但我還沒有在任何地方找到這個使用的樣本。
問題是 FileExtensionsAttribute 僅適用於字元串變數。檢查 HttpPostedFileBase 變數的文件副檔名的最簡單方法是使用這個簡單的屬性。它解決了我的問題。
唯一的缺點是這個新屬性只在伺服器端驗證,所以不要忘記檢查模型狀態:
if (ModelState.IsValid) { // Do the work }