【发布时间】:2012-12-30 18:31:39
【问题描述】:
我从下面的链接中阅读了一篇关于在 MVC 上更改基本视图类型的帖子:
http://haacked.com/archive/2011/02/21/changing-base-type-of-a-razor-view.aspx
我按照说明进行操作,但我的页面仍然继承自 System.Web.Mvc.WebViewPage。我无法访问自定义视图库中定义的任何属性,并且在运行时出现错误。当我使用 @inherits 关键字时,它会修复。
Web.config
<pages pageBaseType="[MyNamespace].WebViewPageBase">
<namespaces>
<add namespace="System.Web.Helpers" />
<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" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
WebViewPageBase
public class WebViewPageBase : WebViewPage
{
public SomeType MyProperty { get; set; }
public override void InitHelpers()
{
base.InitHelpers();
MyProperty = { foo };
}
public override void Execute()
{
}
}
public class WebViewPageBase<T> : WebViewPage<T>
{
public SomeType MyProperty { get; set; }
public override void InitHelpers()
{
base.InitHelpers();
MyProperty = { foo };
}
public override void Execute()
{
}
}
局部视图
@model TopMenuModel
<div class="topMenu">
@MyProperty
</div>
但在我读过的帖子中没有关于@inherits 关键字的说明。在所有页面中没有 @inherits 关键字的情况下,有什么我想念的东西或任何方法可以使它工作吗?
已解决:
root 目录中的web.config 文件不正确。我在View 目录下的web.config 文件中更改了基本类型并修复了它。
【问题讨论】:
标签: asp.net-mvc view asp.net-mvc-4 base