2011-05-05 117 views
0

有人可以幫我在HttpPostedFileWrapper對象上進行模型驗證嗎?「HttpPostedFileWrapper」MVC模型驗證

型號:

[Required(AllowEmptyStrings = false)] 
public HttpPostedFileWrapper BlahFile { get; set; } 

控制器:

[HttpPost] 
    public ActionResult LoadBlahData(BlahModel blahModel) 
    { 
     if (!ModelState.IsValid) 
      return RedirectToAction("Index"); 
    } 

CSHTML:

@using (Html.BeginForm("LoadBlahData", "Admin", FormMethod.Post, new { @class = "blahhForm", enctype = "multipart/form-data", id = "uploadBlah" })) 
{ 
    <fieldset> 
     <legend>Upload Blah Information</legend> 
     @Html.LabelFor(x=>x.BlahFile, "Upload Blah file:") 
     <input size="26" class="uploader" type="file" name="BlahFile" /> 
     <p><input class="ttButton" type="submit" value="Load Stuff" /></p> 
    </fieldset> 
} 

習題lem:

  1. 無法看到要添加到html中的「data-val *」屬性。
  2. 不設定不顯眼的確認關閉(在輸入框紅色邊框)

注:

  1. 模型中的其他項目工作正常使用驗證,它只有<input type="file"/>似乎有問題。
  2. 進入行動方法罰款 - (即 - 如果我想要我可以訪問InputStream)。
  3. 所有腳本都正確引用(其正常的文字輸入的工作)

由於提前,

+0

感謝阿迪爾,手動添加data-val *屬性起作用。 – duyker 2011-05-05 07:44:14

+0

duyker 2011-05-05 07:44:38

回答

0

驗證 -

<%: Html.TextBoxFor(x => x.BlahFile, new { type = "file" }) %> 
+0

這實際上是模型類中註解的最佳解決方案。感謝CSharper(對不起,花了我很長時間纔回到你身邊)。 – duyker 2012-01-23 10:31:16

0

您還沒有添加任何數據屬性的元素。添加像,

<input data-pk="1" size="26" class="uploader" type="file" name="BlahFile" /> 

並沒有只爲別人碰到這個問題,你也可以做到這一點未來不支持的<input type="file"

+0

感謝Adeel,手動添加data-val *屬性起作用。 – duyker 2011-05-05 07:45:31