use*_*567 5 asp.net-mvc asp.net-mvc-partialview razor
我在其他文件夹中调用PartialView而不是Views文件夹时,我得到"必须从WebViewPage派生"错误.
错误
System.InvalidOperationException: The view at '~/Modules/HtmlContent/_HtmlContent.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.
PartialView adding
Run Code Online (Sandbox Code Playgroud)
Page.cshtml
<div class="side">
@Html.Action("Side")
</div>
Run Code Online (Sandbox Code Playgroud)
HomeController.cs
public ActionResult Side()
{
return PartialView("~/Modules/HtmlContent/_HtmlContent.cshtml");
}
Run Code Online (Sandbox Code Playgroud)
文件层次结构
Modules
|
+-- HtmlContent
| |
| +-- _HtmlContent.cshtml
|
Views
|
+-- Home
| |
| +-- Index.cshtml
| |
| +-- Page.cshtml
|
+-- Shared
|
+-- Layout.cshtml
|
+-- _Partial.cshtml
Run Code Online (Sandbox Code Playgroud)
Dar*_*rov 14
您需要将web.config放在此自定义文件夹的根目录中.同样的~/Views/web.config.在这个web.config中你会找到一个指示Razor页面类型的部分:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)
注意如何pageBaseType设置System.Web.Mvc.WebViewPage.
或者,您可以将以下内容添加到Razor视图的顶部:
@inherits System.Web.Mvc.WebViewPage
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7394 次 |
| 最近记录: |