我使用过去经常使用的方法发布一个非常简单的表单。显示我的代码可能更容易,而不是输入冗长的解释。这里的HTML:FormCollection ASP.NET MVC中的表单发布时为空
<% Html.BeginForm("CreateMarketingType", "ListMaintenance"); %>
<div id="ListMaintenanceContainer">
<table>
<tr>
<th>Marketing Type Id</th>
<th>Marketing Type Name</th>
</tr>
<%foreach (MarketingType marketingType in ViewData.Model.MarketingTypes) %>
<%{ %>
<tr>
<td><%= marketingType.MarketingTypeId.ToString() %></td>
<td><%= marketingType.MarketingTypeName %></td>
</tr>
<%} %>
</table>
<div>
<fieldset id="fsSaveNewMarketingType">
<legend>Add New Marketing Type</legend>
<label for="txtNewMarketingTypeName">New Marketing Type Name:</label>
<input type="text" id="txtNewMarketingTypeName" />
<input type="submit" value="Save" id="CreateMarketingType" />
</fieldset>
</div>
</div>
<% Html.EndForm();%>
而这里的控制器代码:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CreateMarketingType(FormCollection form)
{
string newMarketingTypeName = Request.Form["txtNewMarketingTypeName"].ToString();
MarketingType newMarketingType = new MarketingType() { MarketingTypeName = newMarketingTypeName };
_marketingTypeRepository.AddNewMarketingType(newMarketingType);
return View("ListMaintenance", GetModel());
}
提交按钮岗位的形式,并且该方法被调用,但在我的参数定义的表单对象是空的。我也尝试了Request.Form,并得到了相同的结果。我在这里错过了什么吗?
哎 - 这就是我得到的成长在WebForms!我认为id属性传递了表单上的值。谢谢回复!! – 2009-02-02 20:33:14
谢谢!我也认为ID属性会这样做... – 2009-03-15 10:34:42