【发布时间】:2020-03-24 11:18:03
【问题描述】:
首先我想问一下我的英语不好。我对 ASP.NET MVC 非常陌生,目前正在编写我的第一个 Web 应用程序。
我有一个这样的控制器:
namespace MaterialProject.Controllers
{
public class AdminController : Controller
{
[HttpGet]
public IActionResult Admin()
{
//file some Viewbags from database
}
[HttpPost("UpdatePassword")]
[ValidateAntiForgeryToken]
public IActionResult UpdatePassword(EditUser euModel)
{
//database update
}
[HttpPost("UpdateGroupID")]
[ValidateAntiForgeryToken]
public IActionResult UpdateGroupID(EditUser euModel)
{
//database update
}
}
}
当用户选择 UpdatePassword 我想要执行该操作并且用户选择 UpdateGroupID 执行其他操作时,我希望我的视图有 2 个提交按钮。
我的视图叫做 Admin.chtml
<div class="container">
<form asp-controller="Admin" asp-action="UpdatePassword" method="post" class="form-horizontal" role="form">
<div class="alert-danger" asp-validation-summary="ModelOnly"></div>
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-4">
<label asp-for="Username" class="control-label" value=""></label>
<select asp-for="ID" class="form-control"
asp-items="@(new SelectList(ViewBag.editUser, "ID", "Username"))"></select>
</div>
<div id="submit">
<input type="submit" name="submit" value="Update Password" />
</div>
</form>
<form asp-controller="Admin" asp-action="UpdateGroupID" method="post" class="form-horizontal" role="form">
<div class="alert-danger" asp-validation-summary="ModelOnly"></div>
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-4">
<label asp-for="Username" class="control-label" value=""></label>
<select asp-for="ID" class="form-control"
asp-items="@(new SelectList(ViewBag.editUser, "ID", "Username"))"></select>
</div>
<div id="submit">
<input type="submit" name="submit" value="Update GroupID" />
</div>
</form>
</div>
如果我执行上面的代码,我会得到这个错误:
处理请求时发生未处理的异常。
InvalidOperationException:未找到视图“UpdatePassword”。搜索了以下位置:
/Views/Admin/UpdatePassword.cshtml /Views/Shared/UpdatePassword.cshtml /Pages/Shared/UpdatePassword.cshtml
Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable originalLocations)
因为我从未创建过该视图。
有什么方法可以通过在我的表单上按任何提交按钮从我的控制器调用不同的代码块?
提前感谢您的帮助。
【问题讨论】: