在Helper方法中给出“元素链接不能嵌套在元素'链接'”

时间:2011-06-21 23:00:42

标签: c# asp.net-mvc-3 razor

我在MVC3 Razor项目中创建了一个Helper方法(Helpers.cshtml)

   @helper Link(string fileName, UrlHelper url){
        <link href="@url.Content("~/Content/" + fileName)" 
              rel="stylesheet" type="text/css" />
   }

但我得到一个警告工具提示“元素链接不能嵌套在元素'链接'中。”

我在Asp.net上发现了类似的问题 Error when using link href inside my ContentPlaceHolder

我们是否有解决方案。

1 个答案:

答案 0 :(得分:6)

请注意,<link>中只有<head>个标记而非<body>工具无法确认您将从何处调用此帮助程序,因此它会咆哮。

您可以通过将帮助程序临时包装在有效的标记框架中来验证这是正在发生的事情,如下所示。警告应该消失。然后,您可以通过将link更改为某些虚构标记(例如foo)或删除title来确认否定案例,然后再显示这些错误。您应该对感到满意,只要您只从<head>部分调用您的助手,您生成的link标记即可。

<html>
<head>
    @helper Link(string fileName, UrlHelper url){
        <link href="@url.Content("~/Content/" + fileName)" rel="stylesheet" type="text/css" />
   }
   <title>Foo</title>
</head>
<body></body>
</html>