web-dev-qa-db-ja.com

Razorを使用したHtml.RenderPartial()構文

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

@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つのメソッド呼び出しだけでコードブロック@{...}を開く代わりにもっと良い方法がある場合

91
artvolk
  • RenderPartial()は、応答ストリームに書き込むvoidメソッドです。 C#のvoidメソッドには;が必要なので、{ }で囲む必要があります。

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

140
Ofer Zelig

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

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

Webformsビューエンジンでは、ハチ刺され<%%>内にHtml.RenderPartial()呼び出しを入れます

そのようです

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

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

@{Html.RenderPartial("Path/to/my/partial/view");}
45
Nicholas Murray
@Html.Partial("NameOfPartialView")
9
RouR

この形式を指定すると、別のページへのリンクや、ある場所から別の場所へのhtmlファイルのレンダリングに主に使用される別のlink.partialビューのようになります。

0
Sankar