4

これが私がRazorによって表現したいことです:

<b>@parameterMapping.Title</b> (Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)

しかし、それを解析可能にするには、次のように記述する必要があります。

<b>@parameterMapping.Title</b> <text>(Category: </text> @parameterMapping.Category.Title <text>, Regexp:</text> @parameterMapping.Regexp <text>)</text>

この問題を解決するためのより良い方法はありますか?

4

1 に答える 1

13

あなたが書き留めたもの:

<b>@parameterMapping.Title</b>
(Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)

Razorで実際に有効です。私の推測では、これらすべてが条件付きまたは反復ステートメント(ifまたはforeachなど)に含まれていると思います。この場合、すべてを次のようにラップできます<text>

@if(Foo) {
  <text><b>@parameterMapping.Title</b>
  (Category: @parameterMapping.Category.Title, Regexp: @parameterMapping.Regexp)</text>
}

代わりに、または<text>のような有効なHTML要素を使用できます。これは、デフォルトでは、パーサーが「コード」モードで座っており、「マークアップ」モードに切り替えるにはマークアップタグが必要なためです。<p><div>{

Razorはタグマッチングを実行することに注意してください。そのため、すべてのifステートメントをマークアップとして処理する場合は、ステートメントのスコープ全体をタグに含める必要があります。そうしないと、タグ内にないものはすべてコードとして扱われます。

@if(Foo) {
  // Treate as code
  <text>
    Markup
    <div>More markup</div>
    @EscapeIntoCode
  </text>
  // Treate as code again
}
于 2010-09-15T22:09:16.113 に答える