【发布时间】:2011-12-10 03:18:51
【问题描述】:
我正在尝试将我可以在部分中重复使用的所有东西分开,这样我维护起来会更容易。
但是我得到了这个例外: 无法直接请求文件“~/Views/Position/Edit.cshtml”,因为它调用了“RenderSection”方法
我创建了一个名为sections.cshtml 的文件,其内容如下:
@section scripts{
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
}
在 _layout.cshtml 文件中我将其更改为:
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
@RenderSection("scripts", required:false)
@*<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>*@
</head>
当我转到浏览器中的视图并检查它只显示的源代码时:
<head>
<meta charset="utf-8" />
<title>Edit</title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
</head>
【问题讨论】:
-
为什么不把脚本放到你的布局文件中?
-
只是想学习如何使用 mvc 中的部分,但是这也是一个选项,但是如果某些脚本将用于某些视图,而其他脚本将用于其他视图呢?部分会解决这个问题,但布局文件不会解决它,对吧?
-
摆脱@RenderSection,只需将脚本放入......这是布局文件的重点,用于存储大多数页面中常见的内容。
-
您是否将@section 脚本{} 放入您的 Edit.cshtml 文件中?那是你把它放在哪里,而不是在一个单独的文件中。
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 razor