我正在尝试创建一个包含多个参数的简单网页。
当我点击链接时,它会转到/ Links / Index / 1/2而不是/ Links / Canvas / 1/2。正如预期的那样。
控制器:
public class linksController : Controller
{
public IActionResult Index(int? id)
{ ...... return View() }
public IActionResult Canvas(int param1, int param2)
{ ...... return View() }
}
包含无效链接的网页:
<a asp-route="newroute" asp-route-param1="1" asp-route-param2="2">View</a>
Startup.cs:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "newroute",
template: "{controller=Links}/{action=Canvas}/{param1}/{param2}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
答案 0 :(得分:0)
您在路由中指定的默认值仅在没有值时使用,但在此上下文中使用路径时,这些值将填充您当前正在查看的页面的控制器和操作值比默认值。
您可以通过将代码更改为以下内容来覆盖控制器和操作值:
<a asp-controller="Links" asp-action="Canvas" asp-route-param1="1" asp-route-param2="2">View</a>