web-dev-qa-db-ja.com

.NET Core2のRazorPagesを使用して、開始ページを変更するにはどうすればよいですか?

開始ページを/ Members/Indexに設定したかったのです。

MVCを使用していたとき、次のように構成しました。

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

しかし今、私は新しいRazor Pagesアプローチを試しています。そして今、Membersはフォルダーで、IndexはRazorPageです。フォルダ内のこのページを開始ページとして設定するにはどうすればよいですか?

ルートディレクトリにインデックスページを追加してそこにリダイレクトすることはできますが、もっとクリーンなものを探していました。

9
Makow

テストの目的で、Webプロジェクトの[プロパティ]ウィンドウに移動し、[デバッグ]タブを選択して、スタートページを変更できます。 「ブラウザの起動」行に開始パスを入力します

enter image description here

7
Brad Patton

ASP.NET Core 2.1で始まる「開始」ページを指定する最も簡単な方法は、cshtmlファイルで@pageディレクティブを使用することです。この機能は このブログ投稿 で説明されており、ディレクティブの公式ドキュメントは Razorページ構文のこのセクション です。

たとえば、ルートを「/」として指定すると、このページがデフォルトのページになります。

@page "/"
@model sample.Pages.startModel
@{
    ViewData["Title"] = "Start Page";
}

<h2>Start Here!</h2>
...
3
Sixto Saez

Startup.csのConfigurationServices関数に以下を追加します

 services.AddMvc().AddRazorPagesOptions(options =>
        {
            options.Conventions.AddPageRoute("/Members/Index", "");
        });

別のインデックスページがある場合は、おそらくそれを削除するか、名前を変更する必要があります。

3
AllanB

私はこのように使用しています

services.AddMvc()
    .AddRazorPagesOptions(options => 
    {
        options.AllowAreas = true;
        options.Conventions.AddAreaPageRoute("Home", "/Index", "");
    });

私のフォルダ構造は次のとおりです。

-エリア
 | _ホーム
 | _ページ
 | _ Index.cshtml 
 | _ //その他のエリア
1
DenVys

AppStart->RouteConfig.csで次のコードを試してください。

 routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}",
            defaults: new { controller = "Members", action = "Index"}
        );
0
Alsamil Mehboob