asp-controller
时间: 2023-07-05 10:32:14 浏览: 84
在ASP.NET Core中,`asp-controller`是一个HTML辅助器(HTML Helper),用于指定当前HTML元素绑定的控制器名称。`asp-controller`辅助器通常与`asp-action`辅助器一起使用,用于生成URL或表单操作的目标URL。
例如,当我们在视图中使用HTML表单时,可以使用`asp-controller`和`asp-action`辅助器来指定表单提交的目标控制器和动作。例如:
```html
<form asp-controller="Account" asp-action="Login" method="post">
<input type="text" name="username" />
<input type="password" name="password" />
<button type="submit">Login</button>
</form>
```
在这个例子中,`asp-controller`辅助器将表单的目标控制器指定为`Account`,`asp-action`辅助器将表单的目标动作指定为`Login`。当用户提交表单时,ASP.NET Core MVC框架将根据这些信息执行相应的控制器动作。
相关问题
<form asp-controller="Application" asp-action="ApplicationSummary" method="post"> 但request为空取不到值
这个问题可能是由于表单中的asp-controller和asp-action属性没有正确设置导致的。请确保这两个属性的值与你的控制器和操作方法名称匹配。此外,还需要确保在表单中使用了正确的HTTP方法(POST或GET)。
如果你已经检查了这些方面,但仍然无法获取请求中的值,那么可能是由于模型绑定问题。你可以尝试在操作方法中添加一个参数,该参数应该与表单中的输入名称匹配,以确保模型绑定正确。
asp-route-id 有多个值怎么办
如果 asp-route-id 有多个值,可以将其包装在一个列表中。例如,如果您的 asp-route-id 参数具有三个值,可以使用以下方法将其传递给控制器:
```
<a asp-controller="MyController" asp-action="MyAction" asp-route-id="@new List<int> { 1, 2, 3 }">Link</a>
```
在控制器中,您可以使用以下方法来获取这些值:
```
public IActionResult MyAction(List<int> id)
{
// Do something with the id values
return View();
}
```
注意,如果您使用的是 ASP.NET Core 2.x,您需要使用 int[] 数组而不是 List<int>。例如:
```
public IActionResult MyAction(int[] id)
{
// Do something with the id values
return View();
}
```