2017-05-11 56 views
0

我在我的.NET核心Web應用程序中使用區域。我也嘗試使用定位標記輔助!而非的難看@符號是這樣的:奇怪的行爲與錨標籤助手

<a asp-area="Quizzes" asp-controller="Home" asp-action="Index">Quizzes</a> 

但是,當他們被渲染成HTML我看到這個網址:

/Home/Index?area=Quizzes 

爲什麼是不是像往常一樣出來

/Quizzes/Home/Index 

我在這裏錯過了什麼。

+0

不會改變它的渲染方式。 –

+0

我還沒有使用過Core,但我能想到的第一個問題是:您是否註冊了您的區域? https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas –

+0

是的,有一個單一的路線,所有區域 –

回答

0
app.UseMvc(routes => 
    { 

    //Order Matters... 
    routes.MapRoute(name: "areaRoute", 
    template: "{area:exists}/{controller=Home}/{action=Index}"); 
       ///^^^^ required 


    routes.MapRoute(
     name: "default", 
    template: "{controller=Home}/{action=Index}/{id?}"); 
    }); 

然後,控制器爲Home上應當與[Area("Quizzes")]應是在區域內的控制器夾歸因 - >測驗,與需要在該區域的任何其它控制器一起。

+0

訂單確實重要,但對我所描述的內容沒有影響。我的路線規格從一開始就是這樣的(當我添加了我的第一個區域時)。唯一的區別是我的區域路線以/ {id?}結束模板 –