在 MVC 视图中,如果在表单标签中指定 none,将调用什么控制器和方法?
In an MVC view, what controller and method is called if none is specified in the form tag?
我继承了一个 MVC 项目。在视图上,BeginForm 标记中没有指定任何路由(控制器和操作)。视图正确呈现,所以我假设它正在选择默认路由。
我的问题是,如果没有指定路由,它如何知道要使用哪条路由?这里的最佳做法是什么:您应该指定路由还是让它默认?
所以视图是 Views/Config/WorkCodes.cshtml,标签是
Html.BeginForm()
它转到控制器 ConfigController.cs 并调用操作 WorkCodes()。如果我在做项目,我会写
Html.BeginForm("WorkCodes", "Config", FormMethod.Post)
MVC 如何在不指定的情况下知道使用哪个控制器和操作?
WorkCodes.cshtml
@{
ViewBag.Title = "Work Codes";
}
@using (Html.BeginForm())
{
<div>
<table style="width: 100%;" class="trHoverHighlight">
<tbody>
<tr>
<td>
<br />
<div>
<button id="buttonCreateNew" type="button">Add New</button>
<button id="buttonReturn" type="button">Return</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
}
ConfigController.cs
public ActionResult WorkCodes()
{
return View(Rep.GetWorkAll(true));
}
这是在另一个视图中调用视图的地方:
@foreach (var itm in (List<string>)ViewBag.ListObjects)
{
<li>
<a href="../Config/@itm">Work Codes</a>
</li>
}
视图是从执行 HTTP GET
到 WorkCodes
控制器操作生成的,因此默认情况下,在该视图中生成的表单执行 HTTP POST
到具有相同名称的控制器操作.
BeginForm(HtmlHelper) Writes an opening tag to the response.
The form uses the POST method, and the request is processed by the
action method for the view.
我继承了一个 MVC 项目。在视图上,BeginForm 标记中没有指定任何路由(控制器和操作)。视图正确呈现,所以我假设它正在选择默认路由。
我的问题是,如果没有指定路由,它如何知道要使用哪条路由?这里的最佳做法是什么:您应该指定路由还是让它默认?
所以视图是 Views/Config/WorkCodes.cshtml,标签是
Html.BeginForm()
它转到控制器 ConfigController.cs 并调用操作 WorkCodes()。如果我在做项目,我会写
Html.BeginForm("WorkCodes", "Config", FormMethod.Post)
MVC 如何在不指定的情况下知道使用哪个控制器和操作?
WorkCodes.cshtml
@{
ViewBag.Title = "Work Codes";
}
@using (Html.BeginForm())
{
<div>
<table style="width: 100%;" class="trHoverHighlight">
<tbody>
<tr>
<td>
<br />
<div>
<button id="buttonCreateNew" type="button">Add New</button>
<button id="buttonReturn" type="button">Return</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
}
ConfigController.cs
public ActionResult WorkCodes()
{
return View(Rep.GetWorkAll(true));
}
这是在另一个视图中调用视图的地方:
@foreach (var itm in (List<string>)ViewBag.ListObjects)
{
<li>
<a href="../Config/@itm">Work Codes</a>
</li>
}
视图是从执行 HTTP GET
到 WorkCodes
控制器操作生成的,因此默认情况下,在该视图中生成的表单执行 HTTP POST
到具有相同名称的控制器操作.
BeginForm(HtmlHelper) Writes an opening tag to the response. The form uses the POST method, and the request is processed by the action method for the view.