0

我怎样才能正确使用以下内容?

{ bool submitter = value; }

...

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

我的错误是锚标记定义正在输出,就像它应该在 Web 浏览器的 HTML 代码中一样,而不是看到周围的链接,<div>我看到了<a href="...等。

为什么?

4

3 回答 3

1

这是因为除非您使用 HTML5,否则您不能将块级元素(例如div)放入内联元素(例如)中。a从你的描述我猜你不是。

如果您正在检查浏览器 DOM 检查器,您将看到您的代码如下所示:

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

如果需要,另一种方法是更改​​您的divto并在 CSS 中span设置它。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 回答