NetCore Razor

发布时间 2023-12-12 23:33:53作者: microsoft-zhcn

生成链接

  • 从一个基础 controller 的 area 中的方法生成链接到同一 controller 的另一个方法。
    当前请求路径像 /Products/Home/Create
    HtmlHelper 语法:@Html.ActionLink("Go to Product's Home Page", "Index")
    TagHelper 语法:<a asp-action="Index">Go to Product's Home Page</a>
    注意这里不需要提供 ‘area’ 和 ‘controller’ 值因为他们在当前请求上下文中已经可用。这种值被称作 ambient 值。

  • 从一个基础 controller 的 area 中的方法生成链接到不同 controller 的另一个方法。
    当前请求路径像 /Products/Home/Create
    HtmlHelper 语法:@Html.ActionLink("Go to Manage Products’ Home Page", "Index", "Manage")
    TagHelper 语法:<a asp-controller="Manage" asp-action="Index">Go to Manage Products’ Home Page</a>
    注意这里用的 ‘area’ 环境值是上面 ‘controller’ 明确指定的。

  • 从一个基础 controller 的 area 中的方法生成链接到不同 controller 和不同 area 另一个方法。
    当前请求路径像 /Products/Home/Create
    HtmlHelper 语法:@Html.ActionLink("Go to Services’ Home Page", "Index", "Home", new { area = "Services" })
    TagHelper 语法:<a asp-area="Services" asp-controller="Home" asp-action="Index">Go to Services’ Home Page</a>
    注意这里没有环境值被用。

  • 从一个基础 controller 的 area 中的方法生成链接到不在一个 area 中的不同 controller 的另一个方法。
    HtmlHelper 语法:@Html.ActionLink("Go to Manage Products’ Home Page", "Index", "Home", new { area = "" })
    TagHelper 语法:<a asp-area="" asp-controller="Manage" asp-action="Index">Go to Manage Products’ Home Page</a>
    因此生成链接到非 area 的基础 controller 方法,清空了这里 ‘area’ 的环境值。