0

以下を正しく使用するにはどうすればよいですか?

{ bool submitter = value; }

...

@(submitter ? "" : @"<a href=""" + Url.Action(actionName, "Queue") + @""">")
<div>
    ...
</div>
@(submitter ? "" : "</a>")

私のエラーは、アンカー タグの定義が、HTML コードのように Web ブラウザに直接出力されており、周りのリンクが表示される代わりに、等<div>が表示されることです。<a href="...

なんで?

4

3 に答える 3

1

これは、 HTML5 を使用しない限り、divのようなインライン要素内に のようなブロック レベルの要素を配置できないためです。aあなたの説明から、あなたはそうではないと思います。

ブラウザーの DOM インスペクターでチェックインしている場合、コードは次のようになります。

<div></div>
<a href="queue/action"></a>
<div></div>
<a></a>

別の方法として、必要に応じて CSSに変更divspanて設定することもできます。display: block

また、そのようなロジックは ViewModel に配置することをお勧めします。

于 2012-05-04T08:52:56.033 に答える
1

エンコードしたくない場合は、Raw 拡張メソッドを使用する必要があります。

@Html.Raw(submitter ? "" : @"<a href=""" + Url.Action(actionName, "Queue") + @""">")
<div>
    ...
</div>
@Html.Raw(submitter ? "" : "</a>")
于 2012-05-07T02:21:06.703 に答える
0

私が見つけた解決策:

@(new MvcHtmlString(@"<a href=""..."">blah blah</a>"))
于 2012-05-04T10:42:48.820 に答える