2

我对以下内容有疑问。我有一个包含网站主要布局的母版页。然后我有一个特定的视图,它使用母版页作为布局,但添加了如下脚本:

_Masterpage.cshtml

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title - My ASP.NET MVC Application</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
        @RenderSection("head", required: false)
    </head>
    <body>
        <header> ....

_Register.cshtml

@{
    Layout = "_Master.cshtml";
}

@section head
{
    @Scripts.Render("~/bundles/jqueryval");
    @Styles.Render("~/Content/themes/base/css");
}

<div id="body">
    <div data-role="page">
        @RenderBody()
    </div>
</div>

现在包含表单数据的视图使用了_Register.cshtml,但是当RegisterController 中的索引返回视图时(如下所示),_Register.cshtml 中的脚本和样式在 Head 标记中的任何位置都找不到。

public ActionResult Index()
{
    return View();
}

任何人都可以帮助我吗?为了在 head 标签中获取这些脚本/样式,我缺少什么?

谢谢

4

1 回答 1

1

部分在局部视图中不起作用,这是设计使然。您可以使用一些自定义助手 -使用编辑器/显示模板中的部分- 来实现类似的行为,但老实说,包含必要的脚本是视图的责任,而不是部分的责任。我建议您使用主视图的 @scripts 部分来做到这一点,而不是让部分担心脚本

于 2012-12-17T20:13:03.017 回答