我有一个公司对象,其中包含一个分支对象列表,
我的公司视图(驻留在公司目录中)中有一个强类型的分支列表视图(位于分支目录中),
分支视图中的每个分支都有一个删除按钮,我想将其发布到分支控制器中的删除操作。
目前调用的删除操作是公司控制器中的操作
(公司和分公司都有删除行动)
我相信我理解它正在做的事情,但是在这种情况下最好的做法是什么......
我认为分支列表应该在分支目录中并调用分支控制器,但是当局部视图加载到公司详细信息视图中时,如何让它执行此操作?
希望有道理,
谢谢,
标记
<% foreach (var item in Model) { %>
<tr>
<td>
<form action="Edit" method="get">
<input type="submit" value="Edit" id="Submit1" />
<input type="hidden" name="id" value="<%= item.Id %>" />
</form>
|
<form action="Branch" method="get">
<input type="submit" value="Details" id="Submit2" />
<input type="hidden" name="id" value="<%= item.Id %>" />
</form>
|
<form action="BranchDelete" method="post">
<input type="submit" value="BranchDelete" id="Submit1" />
<input type="hidden" name="id" value="<%= item.Id %>" />
</form>
答案 0 :(得分:7)
您需要使用单独的表单标记包围要提交的每组字段。每页可以有多个表单标记。实际上,您可能希望每个局部视图都有自己的表单标记,并提交给不同的控制器操作。
将部分视图放在最有意义的地方。文件位置与从浏览器提交表单的方式无关。
您可以像这样发布到不同的控制器。一个发布到分支机构控制器,一个发布到公司控制器。
<% using (Html.BeginForm("RemoveBranch", "Branch", FormMethod.Post, new { @class = "branchform" }))
{
Html.RenderPartial("~/Views/Branch/BranchView.ascx");
}%>
<% using (Html.BeginForm("RemoveCompany", "Company", FormMethod.Post, new { @class = "companyform" }))
{
Html.RenderPartial("~/Views/Company/CompanyView.ascx");
}%>
在每个视图或部分视图中,您只需要一个提交按钮:
<input type="submit" value="Delete" />