gpt4 book ai didi

asp.net - tag-helpers 未正确生成我的网址

转载 作者:行者123 更新时间:2023-12-02 18:51:37 27 4
gpt4 key购买 nike

我设置了以下路线

    app.UseMvc(routes =>
{

routes.MapRoute(
name: "admin",
template: "{controller=Home}/{action=Index}/{id?}",
defaults: new {Area = "Admin"},
constraints: new {HostConstraint = new MyConstraint()});
routes.MapRoute(
name: "admin-rep",
template: "Rep/{controller=Home}/{action=Index}/{id?}",
defaults: new { Area = "" },
constraints: new { HostConstraint = new MyConstraint() });

routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});

在这种情况下,MyConstraint 始终返回 true

  • 如果我尝试访问路线“/”,我最终会进入“管理”、“ Controller 主页”、“操作索引”区域。没关系。
  • 如果我尝试访问“/rep”,那么我最终会进入根区域、 Controller 主页、操作索引。好的 。问题是这个 View 有一个链接引用我的 HomeController 中的另一个操作(来自根区域)。我期望链接指向/rep/home/action2 但生成的路由是/home/action2 。好像生成网址时存在一些错误匹配?
<a asp-action="Action">Action</a>

@Html.ActionLink("Action", "Action")

最佳答案

重新排序你的路线,先写admin-rep,然后写admin

app.UseMvc(routes =>
{


routes.MapRoute(
name: "admin-rep",
template: "Rep/{controller=Home}/{action=Index}/{id?}",
defaults: new { Area = "" },
constraints: new { HostConstraint = new MyConstraint() });

routes.MapRoute(
name: "admin",
template: "{controller=Home}/{action=Index}/{id?}",
defaults: new {Area = "Admin"},
constraints: new {HostConstraint = new MyConstraint()});

routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});

关于asp.net - tag-helpers 未正确生成我的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40288980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com