2015-09-03 20 views
3

在我们的默认布局中,我们将我们的徽标包裹在URL.Action中以导航回主屏幕。但是,如果我们在一个区域中,它会尝试导航到该区域中不存在的家庭控制器。Url.Action可以在MVC5中指定路径吗?

我们的家庭控制器是提交。下面是在布局文件中的链接:

<a class="navbar-brand custm-navbar-brand" href="@Url.Action("Index", "Submission")"> 
    <img src="@Url.Content("~/Content/images/eed-main-logo.png")" alt="E-Editorial Discovery" width="335" height="56"> 
</a> 

如果我在这样一个区域:/管理/安全/指数
上面的链接试图进入:/管理/提交/索引
但它应该去:/提交/索引

我敢肯定有更好的办法,但我还没有找到它。

+1

像下面的答案,而是让Area值用空字符串 – mijail

回答

1

指定区域就像你会参数。所以,你的第一行应该是:

<a class="navbar-brand custm-navbar-brand" href="@Url.Action("Index", "Submission", new { Area = "AreaName" })"> 
1

您可以指定在Url.Action通话的区域,但这会导致混乱。

而不是必须指定区域,为什么不把路线,所以它知道,以配合下来到该命名空间理清本身:

context.MapRoute("ExpressCheckoutRoute", 
    "expresscheckout/stage/{stageName}/{id}", 
    new { controller = "ExpressCheckout", action = "Stage", area = "FrontEnd", id = UrlParameter.Optional }, 
    new[] { "Web.Areas.FrontEnd.Controllers" } 
    ).DataTokens["UseNamespaceFallback"] = false; 

这个排序的问题了,我和我不再有指定区域参数(注意该映射的最后2部分)。

相关问题