ASP.NET MVC模型绑定仅在Internet Explorer上返回null

时间:2016-04-26 06:16:45

标签: c# asp.net-mvc internet-explorer model-binding

我在IIS Express上部署了一个ASP.NET MVC Web应用程序。我面临的问题是我的模型绑定仅在Internet Explorer 上返回null

方案是,当用户上传文档时,SimpleObject.File.File应该返回null,但仅在IE上,SimpleObject.File返回null,这打破了我们的网站。

这是我的代码的简化版本:

模型

SupportingFileHttpPostedFileBase的包装类,SupportingFile.File):

public class SimpleObject: IValidatableObject
{
    [Required]
    [Display(Name = "SupportingFiles_Name", ResourceType = typeof(ValidationStrings))]
    public SupportingFile File { get; set; }

    public SimpleObject()
    {
        this.File = new SupportingFile();
    }
}

表格的一部分

<div class="form-row hide">
    @Html.RequiredLabelFor(m => m.File.File,"Upload document",true)
    @Html.TextBoxFor(m => m.File.File, new {type="file"})
    @Html.ValidationMessageFor(m => m.File.File)
</div>

控制器

[AllowAnonymous]
[HttpPost]
[ValidateAntiForgeryToken] //CSRF validation
public ActionResult Index(SimpleObject model)
{
    if (model.File == null) 
    {
        throw new Exception("There is a special place in hell for IE");
    }
}

有趣的是,我甚至没有绑定SimpleObject.File - 它在默认构造函数中初始化。我绑定的是SimpleObject.File.File,所有其他浏览器(FF,Chrome)按预期工作,除了IE ...

1 个答案:

答案 0 :(得分:0)

我知道这很旧,但是今天我遇到了这样的问题,无法使用IE的原因是因为我的输入字段被禁用,我将其更改为只读,没有问题