asp.net-mvc – 更改MVC4上的基本视图类型
|
我已经阅读了关于从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关键字在所有页面? 解决了: 根目录中的web.config文件不是正确的。我更改了在web目录下的web.config文件中的基本类型,它修复了。 解决方法为什么显示两个版本的WebViewPageBase:通用和非泛型?您只需要通用版本: public class MyWebView<T> : WebViewPage<T>
{
public SomeType MyProperty { get; set; }
public override void InitHelpers()
{
base.InitHelpers();
MyProperty = new SomeType();
}
public override void Execute()
{
}
}
接着: <pages pageBaseType="MvcApplication1.WebViews.MyWebView">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
现在在您的意见内,您将可以使用该属性: @model TopMenuModel
<div class="topMenu">
@MyProperty
</div>
更新: 一步一步的设置: >使用Internet模板创建一个新的ASP.NET MVC 3应用程序 namespace MvcApplication1
{
public class MyWebView<T> : WebViewPage<T>
{
public string MyProperty { get; set; }
public override void InitHelpers()
{
base.InitHelpers();
MyProperty = "Hello World";
}
public override void Execute()
{
}
}
}
>在/ Views / web.config中设置pageBaseType属性(不要与/ web.config混淆): <pages pageBaseType="MvcApplication1.MyWebView">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
>里面/ Views / Home / Index.cshtml使用属性: <div>
@MyProperty
</div>
>按Ctrl F5运行应用程序,如果一切顺利,您将会遇到一个Hello World。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET – IIS7 – IBM DB2问题
- asp.net-mvc – Url.RouteUrl返回null
- asp.net-mvc – 如何在ASP.NET MVC 2 RC中编写自定义客户端
- asp.net – 任何类似于蚂蚁分析器和免费的工具?
- 为什么从ASP.NET页面下载时,.docx文件被损坏?
- 是否有必要创建ASP.NET 4.0 SQL会话状态数据库,与现有的ASP
- asp.net-mvc-4 – MVC4/DotNetOpenAuth中的自定义OAuth客户
- 什么时候用ASP.NET MVC来淘汰JavaScript
- asp.net – 如何在运行时更改页面位置
- .NET牛人应该知道些什么,我的回答
- asp.net-mvc – Razor视图引擎:复杂循环和HTML
- asp.net-mvc – 通过programmming导入Ms Access数
- iis-7.5 – IIS 7.5 Siteminder不保护ASP.net MV
- ASP到ASP.NET会话变量
- ASP.NET编译器抱怨MiniProfiler不匹配的框架版本
- .net – MVC3 HttpPostedFileBase首先上传没有数
- asp.net-mvc – Razor MVC模型正在丢失保存操作的
- 编译ASP.NET网站时出现MSBuild错误
- asp.net-mvc-4 – 如何将自定义css / js添加到MV
- asp.net-web-api – 如何使用web api和模型绑定定
