ASP.NET MVC の場合と同様に、Html.RenderAction を使用する必要があります。
たとえば、ニュースと製品がオンになっているホームページがあります。
例えばやりたい
@Html.RenderAction("/api/products/featured")
これにより、新しいサービス呼び出しが開始され、テンプレートが html ストリームに出力されます。
これは ServiceStack Razor を使用して可能ですか? もしそうなら、どうすれば達成できますか?
ASP.NET MVC の場合と同様に、Html.RenderAction を使用する必要があります。
たとえば、ニュースと製品がオンになっているホームページがあります。
例えばやりたい
@Html.RenderAction("/api/products/featured")
これにより、新しいサービス呼び出しが開始され、テンプレートが html ストリームに出力されます。
これは ServiceStack Razor を使用して可能ですか? もしそうなら、どうすれば達成できますか?
*回答が重複しているか、何らかの形で紛失した可能性があります
ServiceStack.Razor.ViewPage クラスを見ると、タイプ ServiceStack.Html.HtmlHelper の Html プロパティがあります。このクラスのメソッド (または拡張メソッド) として「RenderAction」が表示されないため、使用できないようです。ViewName を受け取る「Partial」メソッドと、ViewName とオブジェクトを受け取るオーバーロードがあります。上記のコメントに基づくと、これは有用な解決策ではないようです。
上記について私が正しければ、データを取り込むために「Featured View Template」が必要になると思います。次のようなものを追加できます
{ FeaturedResponse products = new JsonServiceClient("http://localhost").Get<FeaturedResponse>("/api/products/featured"); }
あなたのテンプレートに。これにより、products 変数をモデルのように使用できるようになります。
または、JavaScript を使用してデータをテンプレートに取り込みます。ただし、データを HTML 要素に取り込むには JavaScript を使用する必要があります。
@Html.Partial('Featured') を使用してテンプレートをレンダリングできます。
お役に立てれば。