2017-05-11 14 views
0

.NET Core Webアプリケーションの領域を使用しています。アンカータグヘルパーで奇妙な動作が発生する

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

しかし、彼らは、HTMLにレンダリングされたとき、私はこのURLを参照してください:

/Home/Index?area=Quizzes 

なぜ私はまた醜いはこのように表記@探しのの代わりにアンカータグヘルパーを使用しようとしていますいつものように出てくるのではないですか?

/Quizzes/Home/Index 

私はここで何が欠けていますか?その領域にする必要があり、他のコントローラと一緒に、>クイズ -

+0

レンダリングの仕方は変わりません。 –

+0

私はまだコアを使用していませんが、私が考えることができる最初の質問は、あなたのエリアを登録しましたか? 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?}で終わらせることです –

関連する問題