好吧,我可能做错了......但在我的主要_Layout我有这个:
<div id="navigation">
@RenderSection("Navigation")
</div>
在我的Index.cshtml视图中指出了这一点:
@section Navigation{
<-- Need this to point to Views/Shared/Navigation.cshtml -->
}
但是我不希望有一个包含我所有代码的大文件,所以我需要知道如何在本节内部指向一个名为“Navigation.cshtml”的文件 - 基本上所以我有我所有的部分在单独的独立文件中。
我尝试在_Layout而不是@RenderSection中执行@RenderPage(“Navigation.cshtml”),这会产生错误。
- 编辑 -
如果我添加此而不是@RenderSection()
<div id="navigation">
= @RenderPage("~Views/Shared/Navigation.cshtml")
</div>
我明白了:
The file "~/Views/Shared/~Views/Shared/Navigation.cshtml" could not be rendered, because it does not exist or is not a valid page.
- 编辑 -
FULL _Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"> </script>
</head>
<body>
<div id="wrapper">
<div id="content">
<!-- BANNER -->
<div id="banner">
</div>
<!-- NAVIGATION -->
<div id="navigation">
@RenderPage("Navigation.cshtml")
</div>
<!-- MAIN DISPLAY -->
<div id="main">
@RenderBody()
</div>
<!-- FOOTER -->
<div id="footer">
</div>
</div>
</div>
答案 0 :(得分:4)
尝试使用完整的观看路径,或者您可以使用Html.Partial()
或@Html.RenderPartial()
:
<div id="navigation">
@RenderPage("Navigation.cshtml")
</div>
<div id="navigation">
@Html.Partial("~/Views/Shared/Navigation.cshtml")
</div>
<div id="navigation">
@{ Html.RenderPartial("~/Views/Shared/Navigation.cshtml"); }
</div>
答案 1 :(得分:3)
如果您希望将@RenderSection("Navigation")
保留在_Layout
中,可以在视图中尝试以下代码。
@section Navigation{
@Html.Partial("~/Views/Shared/Navigation.cshtml")
}
或者您可以更改_Layout
,如下所示。
<div id="navigation">
@Html.Partial("~/Views/Shared/Navigation.cshtml")
</div>
答案 2 :(得分:0)
尝试仅渲染页面&#34; Views / Shared / Navigation.cshtml&#34;作为这样的部分观点:
<div id="navigation">
@Html.RenderPartial("Navigation")
</div>