嗨,我正在使用多个开始表单。我不确定这是否是一个好主意。这是我的代码。ASP.NET MVC多重开始形式?
<% using (Html.BeginForm("TagManagement", "InternalTag",FormMethod.Post))
{%>
<%: Html.AntiForgeryToken() %>
<table>
<tr>
<td><%:Html.Label("Type") %></td>
<td style="text-align:left"><%:Html.DropDownList("ObjectType",ViewData["TagObjects"] as IEnumerable<SelectListItem>)%></td>
</tr>
<tr>
<td><%:Html.Label("Search ID")%></td>
<td style="text-align:left"><%:Html.TextBox("ObjectID2")%></td>
</tr>
<tr>
<td></td>
<td><input id="Search" type="submit" value="Search" /> <input id="Create" type="button" value="Add to New Tag" onclick="AddTagElements()" /></td>
</tr>
</table>
<br />
<% } %>
<% using (Html.BeginForm("CreateTag","InternalTag",FormMethod.Post)) { %>
<%: Html.AntiForgeryToken() %>
<div id="AddTag">
<input id='SaveTag' type='submit' value='Save' style='width: 125px' />
</div>
<% } %>
路由代码
"Tags/{controller}/{action}/{id}/{type}",
new { action = "Index", id = UrlParameter.Optional, type = UrlParameter.Optional }
我的控制器方法:
public ActionResult TagManagement(FormCollection FC,Guid? ID,InternalTagRef_Types? Type)
public ActionResult CreateTag(FormCollection FC, Guid ID, InternalTagRef_Types Type)
当我点击搜索TagManagement操作参数得到适当的填充。当我点击SaveTag时,它会尝试调用CreateTag操作,但不能,因为它缺少ID和Type。我得到错误参数字典包含非空的类型'System.Guid'的参数'ID'的空项。它应该从URL中获得这些值,即像TagManagement那样的 http://localhost:1338/Tags/InternalTag/TagManagement/D104EBF5-470B-4FAA-9FC7-5391922CCE94/Projects。请帮忙。
是的,每页有多种形式是一个很好的主意 - 每形式限制的一个页面的WebForms的主要烦恼之一IMO – 2010-12-14 10:30:43