Yul*_*ian 4 asp.net-mvc routing asp.net-mvc-5
我在一个区域内有一条自定义路线:
[RouteArea("MyArea")]
public class MyController: Controller
{
[Route("~/my-action")]
public ActionResult MyAction()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
在添加Route和RouteArea属性之前,我通过以下路由访问了此操作:
~/MyArea/MyController/MyAction
Run Code Online (Sandbox Code Playgroud)
现在我添加了这个属性,我只能通过这个来访问它:
~/my-action
Run Code Online (Sandbox Code Playgroud)
我曾经有一个指向这个动作的ActionLink,它看起来像这样:
@Html.ActionLink("Link To My Action", "MyAction", "My", new { Area = "MyArea" }, new { })
Run Code Online (Sandbox Code Playgroud)
现在这个ActionLink不再有效了.我该如何解决?
我提出了以下解决方案:
我在我创建的路线上添加了一个名字.
[Route("~/my-action", Name = "CustomRoute")]
public ActionResult MyAction()
Run Code Online (Sandbox Code Playgroud)
然后我使用RouteLink辅助方法,而不是像这样的ActionLink方法:
@Html.RouteLink("Link To My Action", "CustomRoute")
Run Code Online (Sandbox Code Playgroud)
因此,RouteLink方法的第一个参数是链接的文本,第二个参数是路径的名称 - 与您在Route属性中放置的名称相同.
归档时间: |
|
查看次数: |
3181 次 |
最近记录: |