16

2ページあるとします

  1. /NotADefault.cshtml

  2. /Views/Default.cshtml

質問1。

これを実行すると、A名前に関係なく、ページは常に起動時のデフォルト ページとして暗黙的に呼び出されます。
ページBは、localhost/View/Default を明示的に呼び出した場合にのみ呼び出されます。Bページ(View フォルダー内のページ) を既定のページにするにはどうすればよいですか?

質問2。

私も持っNotADefaultService.csていDefaultService.csます。各ページの後ろに Service クラスを与えます。ただし、ページAが呼び出されたときに呼び出されるNotADefaultService.csことはありません。DefaultService.csページが呼び出されたときにのみ呼び出さBれます...

私の観察では、Viewフォルダー内のページだけがバックエンド サービス クラスを機能させることができます。フォルダの外でViewは機能しません。

Q1 と Q2 を組み合わせます。

方法:

オプション 1.バックエンド サービス クラスを/ root「View」フォルダの外で動作させますか?

また

オプション 2.起動/View/Default.schtml時にサービス クラスをヒットできるデフォルトとして指定しますか?

4

1 に答える 1

24

ServiceStackで:

  • /Views/フォルダー内に存在する Razor ページは、ビュー ページと呼ばれます。
  • 他の場所に存在する Razor ページは、コンテンツ ページと呼ばれます

それらの違いは、ビュー ページがMVC コントローラーに対してビュー ページが機能するのとほぼ同じように、サービスの HTML 表現 (別名ビュー) を提供するために使用される Razor ビューであることです。

ビュー ページは直接呼び出すことはできません。これはコンテンツ ページの役割であり、直接、つまりサービスのコンテキスト外 (またはサービスからリダイレクト) でのみ呼び出すことができます。

Razor Rockstarsでは、コンテンツ ページの例は次のとおりです。

ビューページの例には次のものがあります。

  • /rockstars/RockstarsService.cs のルートと一致する/ rockstarsであり、[DefaultView("Rockstars")]属性により、/Rockstars.cshtml ビュー ページを使用します

デフォルトのページ

コンテンツ ページの場合、これdefault.cshtmlはフォルダのインデックス ページです。したがって、ルート/パスのデフォルト ページを設定するには、/default.cshtmlページを作成します。この例は、再利用性デモで使用される/default.cshtmlホーム ページです。

ビュー ページをホームページとして使用する場合は、AppHost 構成を追加してデフォルトのリダイレクトを設定できます。

SetConfig(new HostConfig { 
   DefaultRedirectPath = "/home"
});

これは、 Razor Rockstarsページに配置されたルールに基づいて、最も適切なビュー ページを使用するルートに一致するサービスを呼び出します。/home

于 2012-11-03T05:20:52.363 に答える