首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未填充HttpPostedFileBase

未填充HttpPostedFileBase
EN

Stack Overflow用户
提问于 2012-11-14 03:41:05
回答 1查看 554关注 0票数 1

我有一个模型(简化后,删除了无关的属性):

代码语言:javascript
复制
public class SubmitModel
{
    [Required]
    [DataType("FileUpload")]
    [Display(Name = "Formatted Data File")]
    public HttpPostedFileBase FormattedDataFile { get; set; }
}

控制器:

代码语言:javascript
复制
[HttpPost]
public ActionResult Submit(SubmitModel model)
{
    if (this.ModelState.IsValid)
    {
        //...
    }

    return this.View(model);
}

A FileUpload视图:

代码语言:javascript
复制
@{
    IDictionary<string, object> htmlAttributes = Html.GetUnobtrusiveValidationAttributes(string.Empty);
}

<input type="file" id="@this.ViewData.TemplateInfo.GetFullHtmlFieldId(string.Empty)" name="@this.ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty)" @(new MvcHtmlString(htmlAttributes.ToHtmlAttributesString())) />
@Html.ValidationMessage(string.Empty)

和一个简单的视图:

代码语言:javascript
复制
@model SubmitModel

@using (Html.BeginForm())
{
    <div class="Form">
        @Html.EditorForModel()

        <div class="Footer">
            <button class="Button" data-options='{ "icons": { "primary": "ui-icon-disk" } }'>Submit</button>
        </div>
    </div>
}

这将呈现给这个HTML:

代码语言:javascript
复制
<form action="/Data/Submit" method="post">
    <div class="Form">
        <div class="Item">
            <div class="Label Required">Formatted Data File:</div>
            <div class="Input">
                <input type="file" id="FormattedDataFile" name="FormattedDataFile"  data-val-required="The Formatted Data File field is required." data-val="true" />
                <span class="field-validation-error" data-valmsg-for="FormattedDataFile" data-valmsg-replace="true">The value &#39;Test.xlsx&#39; is invalid.</span>
            </div>
        </div>

        <div class="Footer">
            <button class="Button" data-options='{ "icons": { "primary": "ui-icon-disk" } }'>Submit</button>
        </div>
    </div>
</form>

单击Submit后,我将进入正确的控制器/操作,并且我的模型的FormattedDataFile属性为空。ModelState是无效的,因为“格式化数据文件字段是必需的”。同样的代码在我做过的一些MVC-3项目中工作得很好-在MVC-4中有什么不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 05:08:17

我想你在表格里漏掉了enctype="multipart/form-data"

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13367565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档