这是我的模型代码
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);
}
答案 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 )) { }
希望,这有帮助。
微米。