asp.net-mvc – ASP MVC Razor视图扩展方法,如何创建“全局”视
发布时间:2020-12-16 00:38:43 所属栏目:asp.Net 来源:网络整理
导读:我正在使用Razor视图与asp mvc预览3 我正在尝试创建一些我想直接在视图中可用的方法。这些不是真正的Html帮助方法,所以我不认为扩展HtmlHelper是有道理的吗? 我的目标是能够在视图中调用方法,即 @HelloWorld(); vs @Html.HelloWorld() 我可以通过在HtmlHe
我正在使用Razor视图与asp mvc预览3
我正在尝试创建一些我想直接在视图中可用的方法。这些不是真正的Html帮助方法,所以我不认为扩展HtmlHelper是有道理的吗? 我的目标是能够在视图中调用方法,即 @HelloWorld(); vs @Html.HelloWorld() 我可以通过在HtmlHelper上创建一个扩展方法来让Html.HelloWorld工作 public static class HtmlExtensions { public static string HelloWorld(this HtmlHelper helper) { return "Hello"; } } 我想做同样的事情,但是为了这个观点;我的问题 – 视图是什么类型的对象? 注意:我可以通过在.cshtml页面中定义方法来使其工作 @functions { public string HelloWorld() { return "Hello"; } } @HelloWorld() @* now this works *@ 然后我试图把这个代码我的_viewstart.cshtml文件认为它可以在所有的视图,但它不是 如果我知道哪种类型的视图是我认为可以轻松扩展,任何帮助赞赏 解决方法
事实证明,asp运行时将在运行时定义Execute方法,因此自定义视图基类也必须是抽象的
using System; using System.Web.Mvc; namespace MyMvcWebApp.Extensions { public abstract class ViewBase<TModel> : System.Web.Mvc.WebViewPage<TModel> where TModel : class { // now this will be available in any view @HelloWorld() public string HelloWorld() { return "Hello from the ViewBase class"; } } } 这应该使用强类型的视图,它看起来像剃刀所有的视图是强类型的,当你没有定义类型’动态’被使用,这是强类型 同样,当ClickTricity声明你然后更新web.config(在视图目录下的一个) <pages pageBaseType="MyMvcWebApp.Extensions.ViewBase"> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – VS 2012发布:找不到有效的AspnetMergePath
- asp.net – 用于Microsoft.Office.Interop.Excel的Excel dl
- asp.net-mvc – 在IIS 6上托管ASP.NET MVC时是否会丢失功能
- asp.net-mvc-3 – MVC 3模型的复杂验证
- asp.net – 在编辑模式下未选择的Html.DropDownListFor值
- asp.net-mvc – 禁止使用[授权]操作过滤器的控制器方法的浏
- 每次在ASP.NET中触发哪个事件
- asp.net中的.ashx文件?
- ASP.NET WebForms DropDownList数据绑定奇怪的行为?
- asp.net-mvc – 属性似乎根本不起作用
推荐文章
站长推荐
热点阅读