RazorでのHtml.RenderPartial()構文


95

これは、部分的なビューのレンダリング結果を文字列で返すため、機能します。

@Html.Partial("Path/to/my/partial/view")

しかし、私は使用することを好みRenderPartial、それを書く必要があるようです:

@{Html.RenderPartial("Path/to/my/partial/view");}

の代わりに:

@Html.RenderPartial("Path/to/my/partial/view");

それを機能させるために。エラーメッセージ:

 Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

@{...}1回のメソッド呼び出しだけでコードブロックを開く代わりに、より良い方法があるかどうか。


使用しようとすると発生するエラーは何ですか@Html.RenderPartial()
Neil Knight

投稿にメッセージを追加しました。@ Html.RenderPartial()が<%?:@ Html.RenderPartial()?>として解析されるエラーを示している理由を理解しています。Html.RenderPartial(); ?>、しかし私は回避策を探しています。
artvolk 2011

関連:Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction。ところであなたはなぜあなたが使いRenderPartialたいのですか?
パオロモレッティ

回答:


142
  • RenderPartial()、ボイド方法応答ストリームに書き込みます。C#のvoidメソッドはを必要;とするため、で囲む必要があります{ }

  • Partial()MvcHtmlStringを返すメソッドです。Razorでは、そのような文字列を@プレフィックスだけで返すプロパティまたはメソッドを呼び出して、ページ上にあるプレーンHTMLと区別できます。


1
Html.Partialの代わりにHtml.RenderPartialを使用する理由は何ですか?何らかの理由でHtml.RenderPartialを使用する必要がある場合、回避策はありません-これが構文です。
Ofer Zelig 2011

5
それはより効果的である必要があるので使用します(巨大な文字列を返さないため)。
artvolk

45

Html.RenderPartial()はvoidメソッドです。コード内のRenderPartialの呼び出しの上にマウスを置くと、メソッドがvoidメソッドかどうかを確認でき、テキスト(拡張子)void HtmlHelper.RenderPartial ...が表示されます。

Voidメソッドでは、呼び出しコードの最後にセミコロンが必要です。

Webformsビューエンジンでは、Html.RenderPartial()呼び出しを蜂の巣<%%>内に含めます。

そのようです

<% Html.RenderPartial("Path/to/my/partial/view"); %>

Razorビューエンジンを使用している場合、同等のものは

@{Html.RenderPartial("Path/to/my/partial/view");}

5
"ハチ刺し"-これは最初の(私にとっては?)
JoeBrockhaus

9
@Html.Partial("NameOfPartialView")

を使用したいHtml.RenderPartial()ので、この質問をしました。詳細:「パフォーマンスの観点から、出力ストリームへの直接レンダリングの方が優れていると主張されています(そのため、最初からvoid RenderPartialを使用しました)。」ここからstackoverflow.com/a/2729851/118810
artvolk

0

この形式が指定されている場合は、別のページへのリンクまたは別のlink.partialビューのように、ある場所から別の場所へのhtmlファイルの再レンダリングに主に使用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.