2

次のように、HTML/Razor ブロックをパラメーターとして受け入れるメソッドを呼び出すことができます。

@Html.SiteText(@<div>Some content</div>)

複数の最上位タグを使用して同じメソッドを呼び出すと、パーサー エラーが原因で失敗します。IE

@Html.SiteText(@<div>Some content</div><div>Some more content</div>)

次のエラーで失敗します: Compiler Error Message: CS1026: ) expected

複数の最上位タグを持つ Razor ヘルパーを渡す方法はありますか?

編集:

SiteText 拡張メソッドのシグネチャは次のとおりです。

public static IHtmlString SiteText(this HtmlHelper htmlHelper, Func<object, HelperResult> content)

メソッドの実際の実装は重要ではありません。これは、実装が入力に対して行うことではなく、メソッドの呼び出し方法に適用されるためです。

4

2 に答える 2

3

これを見る簡単な方法は、Razor ビュー エンジンがこれらの div タグのそれぞれを単一のプロパティとして見ているということです。

それらをテキストタグでラップすると、問題が解決するはずです:

@Html.SiteText(@<text><div>Some content</div><div>Some more content</div></text>)
于 2013-06-13T14:54:27.237 に答える
2

テストされていませんが、これで解決すると思います:

@Html.SiteText(@<text>
    <div>Some content</div>
    <div>Some more content</div>
</text>)
于 2013-06-13T14:55:06.487 に答える