首页 > 解决方案 > 文件输入返回空值 ASP.NET MVC

问题描述

我在包含文件输入的视图上有一个开始表单,但是当我尝试将输入值传递给我的控制器操作时,它返回一个空值。

视图中的代码:

@using (Html.BeginForm("DoCreate", "Admin", FormMethod.Post))
{
    <label>Description:</label>
    @Html.TextBox("Description", null, new { @class = "form-control", @type = "text", required = "required" });
    <label>Price:</label>
    @Html.TextBox("Price", null, new { @class = "form-control", @type = "number", required = "required" });
    <label>Quantity:</label>
    @Html.TextBox("Quantity", null, new { @class = "form-control", @type = "number", required = "required" });
    <label>Image:</label>
    @Html.TextBox("Image", null, new { @class = "form-control", @type = "file", required = "required" });
    <label>Product Type:</label>
    @Html.DropDownList("TypeID", new SelectList(Model, "ID", "TypeName"), "Select Product Type", new { @class = "form-control", required = "required" });

    <button class="btn btn-success" type="submit">Add to Table</button>
}

控制器中的代码:

[HttpPost]
public ActionResult DoCreate(string Description, float Price, int Quantity, HttpPostedFileBase Image, int TypeID)
{
    return View();
}

如果通过操作插入断点,所有其他变量都具有正确的值,但图像返回 null,我不确定这是为什么,任何帮助将不胜感激。

标签: asp.netasp.net-mvc

解决方案


请检查这个

您只需要htmlAttribute在表单中添加new { enctype = "multipart/form-data"}

@using (Html.BeginForm("DoCreate", "Admin", FormMethod.Post,new { enctype = "multipart/form-data" }))
{
    <label>Description:</label>
    @Html.TextBox("Description", null, new { @class = "form-control", @type = "text", required = "required" });
    <label>Price:</label>
    @Html.TextBox("Price", null, new { @class = "form-control", @type = "number", required = "required" });
    <label>Quantity:</label>
    @Html.TextBox("Quantity", null, new { @class = "form-control", @type = "number", required = "required" });
    <label>Image:</label>
    @Html.TextBox("Image", null, new { @class = "form-control", @type = "file", required = "required" });
    <label>Product Type:</label>
    @Html.DropDownList("TypeID", new SelectList(Model, "ID", "TypeName"), "Select Product Type", new { @class = "form-control", required = "required" });

    <button class="btn btn-success" type="submit">Add to Table</button>
}

推荐阅读