Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net ActionLink忽略属性路由设置_Asp.net_Asp.net Mvc_Asp.net Mvc Routing - Fatal编程技术网

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区域it
RouteConfig
,因此您的操作链接应该如下所示:

@Html.ActionLink("TextObject", "Index", "Index", new { area = "umt" }, null)

非常感谢。很好。但是,出于好奇,是否可以将属性Routes设置为默认值?@Ricardo是的,您应该在
RegisterRoutes
检查中执行此操作。
@Html.ActionLink("TextObject", "Index", "Index", new { area = "umt" }, null)