2015-09-03 19 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部分)。

相關問題