MVC3 - 'Elemento 'enlace' no se puede anidar dentro del elemento 'enlace' - tratando de agregar CSS específico de la página

Tengo una página de diseño por lo tanto

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
    <link href="@Url.Content("~/content/main_layout.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/content/menu.css")" rel="stylesheet" type="text/css" />
    @RenderSection("JS", required:false)
    @RenderSection("CSS", required:false)
</head>
<body>
    @RenderBody()
</body>
</html>

Y luego una vista como esa

@{
    ViewBag.Title = "Home";
    Layout = "~/views/shared/_layout.cshtml";
}
@using RS.Common.HtmlHelpers;
@section JS
{
    <script src="@Url.Content("~/scripts/fue.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/scripts/jquery.flexslider-min.js")" type="text/javascript"></script>
}
@section CSS 
{
    <link href="@Url.Content("~/content/hp.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/content/hp_form.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/content/flexslider.css")" rel="stylesheet" type="text/css" />
}

<h4>Test!</h4>

La página carga bien como esperaba. Sin embargo, recibo 3 advertencias:

Validation (XHTML 1.0 Transitional): Element 'link' cannot be nested within element 'link'

Este error, uno para cada uno de los etiquetas en la sección CSS de la vista.

Solo es realmente una molestia en esta etapa, pero me preguntaba cuál podría ser la causa (y, por lo tanto, la solución) de este error.

preguntado el 03 de mayo de 12 a las 16:05

1 Respuestas

Ha especificado HTML5 DOCTYPE y aún intenta validar como XHTML 1.0 Transitional. Supongo que el HTML renderizado final se ve así:

<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
    <script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
    <link href="/es/content/main_layout.css" rel="stylesheet" type="text/css" />
    <link href="/es/content/menu.css" rel="stylesheet" type="text/css" />

    <script src="/scripts/fue.js" type="text/javascript"></script>
    <script src="/scripts/jquery.flexslider-min.js" type="text/javascript"></script>

    <link href="/es/content/hp.css" rel="stylesheet" type="text/css" />
    <link href="/es/content/hp_form.css" rel="stylesheet" type="text/css" />
    <link href="/es/content/flexslider.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <h4>Test!</h4>
</body>
</html>

Es posible que desee invertir el orden de los dos RenderSection en su diseño para que los enlaces y scripts estén agrupados. O también podría considerar mover las declaraciones del script al final de la página:

Me gusta:

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/content/main_layout.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/content/menu.css")" rel="stylesheet" type="text/css" />
    @RenderSection("CSS", required:false)
</head>
<body>
    @RenderBody()

    <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
    @RenderSection("JS", required:false)
</body>
</html>

contestado el 03 de mayo de 12 a las 16:05

De hecho, esa es la razón y el diseño también se ve mucho más claro. Gracias de nuevo Darín. - glosrob

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.