首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpPostedFileBase始终为空

HttpPostedFileBase始终为空
EN

Stack Overflow用户
提问于 2013-09-11 15:02:47
回答 3查看 180关注 0票数 1

我有这样的控制器:

代码语言:javascript
复制
public ActionResult SaveBook(Book coll, HttpPostedFileBase EBook)
{
}

视图如下所示:

代码语言:javascript
复制
@using (Html.BeginForm("SaveBook", "Book", FormMethod.Post,
            new { enctype = "multipart/form-data" }))
{
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Book</legend>

        <table>
            <tr>
                <td>@Html.LabelFor(model => model.Title)</td>
                <td>@Html.EditorFor(model => model.Title)@Html.ValidationMessageFor(model => model.Title)</td>
            </tr>
            <tr>
                <td>@Html.LabelFor(model => model.ISBN)</td>
                <td>@Html.EditorFor(model => model.ISBN)@Html.ValidationMessageFor(model => model.ISBN)</td>
            </tr>
 <tr><td>@Html.LabelFor(model => model.EBook) </td><td>@Html.TextBoxFor(model => model.EBook, new { type = "file", accept = ".pdf" })
    @Html.ValidationMessageFor(model => model.EBook)</td></tr>
        </table>
        <p>
            <input type="submit" value="SaveBook" />
        </p>
    </fieldset>
}

我的模型如下:

代码语言:javascript
复制
[Required(ErrorMessage = "Title Required")]
public  String  Title { get; set; }
[Required(ErrorMessage = "ISBN Required")]
public  String  ISBN { get; set; }
public HttpPostedFileBase EBook { get; set; }

但我仍然从" EBook“对象或控制器的”EBook“对象中的coll "null”值中获得值。有什么建议吗?

EN

回答 3

Stack Overflow用户

发布于 2013-09-11 17:59:13

由于您的模型中具有相同的名称,因此您将获得null。昨天在我身上也发生了同样的事情,把他们中的一个重新命名为其他名称。

尝试以下操作:

代码语言:javascript
复制
    <div class="editor-field">
        <input type="file" name="file" />
    </div>

你的行动应该是类似的

代码语言:javascript
复制
public ActionResult SaveBook(Book coll, HttpPostedFileBase file)
{
}
票数 0
EN

Stack Overflow用户

发布于 2013-09-11 18:22:05

EBook已经是您的模型的一个属性。将您的操作更改为以下内容,以使模型绑定正常工作:

代码语言:javascript
复制
[HttpPost]
public ActionResult SaveBook(Book coll)
{ 
}
票数 0
EN

Stack Overflow用户

发布于 2013-09-11 22:44:33

我现在发现的事实。我像这样增加maxRequestLength:

代码语言:javascript
复制
  <httpRuntime targetFramework="4.5" maxRequestLength="1048576" />

而且它起作用了。

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

https://stackoverflow.com/questions/18734699

复制
相关文章

相似问题

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