Asp.net ActionLink忽略属性路由设置
我有一个Asp.net ActionLink忽略属性路由设置,asp.net,asp.net-mvc,asp.net-mvc-routing,Asp.net,Asp.net Mvc,Asp.net Mvc Routing,我有一个TextObject控制器,它是由“~/umt/text/{action}/{id?}”访问的,如控制器中使用属性路由定义的,但操作链接: @Html.ActionLink("Index", "Index", "TextObject") 忽略属性路由并使用常规路由定义,生成~/TextObject/而不是所需的~/umt/text/ TextObjectController: [Authorize] [RouteArea("umt")] [RoutePrefix("text")] [R
TextObject
控制器,它是由“~/umt/text/{action}/{id?}
”访问的,如控制器中使用属性路由定义的,但操作链接:
@Html.ActionLink("Index", "Index", "TextObject")
忽略属性路由并使用常规路由定义,生成~/TextObject/
而不是所需的~/umt/text/
TextObjectController:
[Authorize]
[RouteArea("umt")]
[RoutePrefix("text")]
[Route("{action=index}/{id?}")]
public class TextObjectController : Controller
{
.....
public async Task<ActionResult> Index()
{
return View(await db.TextObjects.ToListAsync());
}
.....
}
控制器上是否需要任何额外的配置来使操作链接工作,或者它是否与属性路由一起工作
我想保持它的简单性,它直接通过url正确路由,但是
ActionLink
帮助程序似乎不喜欢它。我看不出您指定了您的defauld区域itRouteConfig
,因此您的操作链接应该如下所示:
@Html.ActionLink("TextObject", "Index", "Index", new { area = "umt" }, null)
非常感谢。很好。但是,出于好奇,是否可以将属性Routes设置为默认值?@Ricardo是的,您应该在
RegisterRoutes
检查中执行此操作。
@Html.ActionLink("TextObject", "Index", "Index", new { area = "umt" }, null)