【问题标题】:MVC Model validation on "HttpPostedFileWrapper"“HttpPostedFileWrapper”上的 MVC 模型验证
【发布时间】:2011-05-05 06:45:53
【问题描述】:

有人可以帮我对 HttpPostedFileWrapper 对象进行模型验证吗?

型号:

[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>
}

问题:

  1. 看不到添加到 html 的“data-val*”属性。
  2. 不关闭不显眼的验证(输入框上的红色边框)

注意事项:

  1. 模型中的其他项目通过验证工作正常,只有 &lt;input type="file"/&gt; 似乎有问题。
  2. 进入操作方法很好 - (即 - 如果我愿意,我可以访问 InputStream)。
  3. 所有脚本都被正确引用(它适用于普通文本输入)

提前致谢,

【问题讨论】:

  • 感谢 Adeel,手动添加 data-val* 属性有效。

标签: asp.net-mvc validation unobtrusive-validation


【解决方案1】:

对于遇到此问题的其他人,您也可以这样做 -

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

【讨论】:

  • 这实际上是最好的解决方案以及模型类中的注释。感谢 CSharper(抱歉,我花了这么长时间才回复您)。
【解决方案2】:

您尚未向元素添加任何数据属性。像这样添加,

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

不支持验证&lt;input type="file"

【讨论】:

  • 感谢 Adeel,手动添加 data-val* 属性有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
  • 2015-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多