Helper方法中的<Link>给出"元素链接不能嵌套在元素'链接'"

Man*_*kar 7 c# razor asp.net-mvc-3

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

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

但我得到一个警告工具提示"元素链接不能嵌套在元素'链接'".

在ContentPlaceHolder中使用链接href时,我在Asp.net Error上发现了类似的问题

我们有解决方案吗?

Dav*_*tka 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> 
Run Code Online (Sandbox Code Playgroud)