模型返回空值

时间:2013-02-27 20:04:11

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

这是我的模型代码

public class ManufacturerModel
{
    public int ProductTYpeId { get; set; }
    public int Id { get; set; }
    public string Name { get; set; }
    public List<SelectListItem> manf { get; set; }
    public Manufacturer manufacturer { get; set; }
}

这是我在cshtml文件中的代码

@using (Html.BeginForm("addmanufacturer", "Admin", FormMethod.Post, new { id = "formPageID" }))
{
    <div class="row">
        <label>Select Existing Manufacturer<span style="color: Red">*</span>:</label>
        <div class="formRight">
            @Html.DropDownList("Id", Model.manf)
        </div>
    </div>
    <div class="row">
        <label>Manufacturer Name<span style="color: Red">*</span>:</label>
        <div class="formRight">
            @Html.TextBoxFor(m => m.manufacturer.name)
            @Html.ValidationMessageFor(m => m.manufacturer.name)
        </div>
    </div>
}

我发布此表单,当我尝试从manfacurer获取值时,即:ManufacturerModel manufacturer = new ManufacturerModel(); 使用模型对象,所有值都为空。

文本框中的

如果我用m =&gt;替换它m.Name然后我能够获得正确的Name值。 可以任何人提出问题是什么

我正在使用manf绑定下拉列表。如果我在回复表格的情况下,如果它返回,则该值变为空白,我需要重新填充该值..

    public ActionResult addmanufacturer(string id)
    {
        if (id == null)
            id = "0";

        ManufacturerModel manufacturer = new ManufacturerModel();
        manufacturer.ProductTYpeId = Convert.ToInt32(id);
        manufacturer.manf = GetManf();
        manufacturer.Id = -1;

        return View(manufacturer);
    }

1 个答案:

答案 0 :(得分:0)

我认为问题将是:

@using (Html.BeginForm("Action", "Controller", FormMethod, HTML ATTRIBUTES )) { }

你可能想要这个重载:

@using (Html.BeginForm("Action", "Controller", Route Values, FormMethod, html attributes )) { }

重要的是告诉他你想要路线值而不是html atrributes,所以试试这个

@using (Html.BeginForm("addmanufacturer", "Admin", new { id = "formPageID" }, FormMethod.Post, null )) { }

希望,这有帮助。

微米。