Mik*_*oud 12 .net c# asp.net asp.net-mvc
考虑以下标记:
<h2>Edit SAS Program</h2>
@using (Html.BeginForm("Edit", "SasProgram", FormMethod.Post))
{
<label for="Name">Name</label>
@Html.TextBoxFor(model => model.Name)
using (Html.BeginForm("Delete", "SasProgram", FormMethod.Post))
{
<input type="submit" class="button" value="Delete" />
}
<input type="submit" class="button" value="Save Changes" />
}
Run Code Online (Sandbox Code Playgroud)
我想把Delete
按钮放在与...相同的视图上Edit
.但是,它不会让我有嵌套的表单.处理这种情况的适当方法是什么?
我尝试利用这个答案,如何处理ASP.NET MVC中的嵌套表单,但现在它已经是一个断开的链接.
nro*_*dic 16
我会以相同的形式为按钮名称使用不同的值:
@using (Html.BeginForm("Edit", "SasProgram", FormMethod.Post))
{
<label for="Name">Name</label>
@Html.TextBoxFor(model => model.Name)
<button name="action" value="delete">Delete</button>
<button name="action" value="save">Save Changes</button>
}
Run Code Online (Sandbox Code Playgroud)
然后切换控制器:
[HttpPost]
public ActionResult Edit( SomeModel model, string action )
{
switch( action ) {
case "delete":
// delete action
break;
case "save":
// save action
break;
}
}
Run Code Online (Sandbox Code Playgroud)
代码是从内存中编写的,但它可以在生产中使用.请注意,按钮是默认类型 - 提交.
Kri*_*aes 14
最好和最简单的方法是使用两种形式但不嵌套它们:
<h2>Edit SAS Program</h2>
@using (Html.BeginForm("Edit", "SasProgram", FormMethod.Post))
{
<label for="Name">Name</label>
@Html.TextBoxFor(model => model.Name)
<input type="submit" class="button" value="Save Changes" />
}
@using (Html.BeginForm("Delete", "SasProgram", FormMethod.Post))
{
<input type="submit" class="button" value="Delete" />
}
Run Code Online (Sandbox Code Playgroud)
这样你就有: