加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – PartialView必须从WebViewPage派生错误

发布时间:2020-12-16 03:42:15 所属栏目:asp.Net 来源:网络整理
导读:我在其他文件夹中调用PartialView而不是Views文件夹时,我得到“必须从WebViewPage派生”错误. 错误 System.InvalidOperationException: The view at '~/Modules/HtmlContent/_HtmlContent.cshtml' must derive from WebViewPage,or WebViewPageTModel.Partia
我在其他文件夹中调用PartialView而不是Views文件夹时,我得到“必须从WebViewPage派生”错误.

错误

System.InvalidOperationException: The view at '~/Modules/HtmlContent/_HtmlContent.cshtml' must derive from WebViewPage,or WebViewPage<TModel>.
PartialView adding

Page.cshtml

<div class="side">
    @Html.Action("Side")
</div>

HomeController.cs

public ActionResult Side()
{
    return PartialView("~/Modules/HtmlContent/_HtmlContent.cshtml");
}

文件层次结构

Modules
|
+-- HtmlContent
|             |
|             +-- _HtmlContent.cshtml
|
Views
    |
    +-- Home
    |      |
    |      +-- Index.cshtml
    |      |
    |      +-- Page.cshtml
    |
    +-- Shared
             |
             +-- Layout.cshtml
             |
             +-- _Partial.cshtml

解决方法

您需要将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>

请注意pageBaseType是如何设置为System.Web.Mvc.WebViewPage的.

或者,您可以将以下内容添加到Razor视图的顶部:

@inherits System.Web.Mvc.WebViewPage

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读