asp.net-mvc – ASP MVC Razor视图扩展方法,如何创建“全局”视图方法?
发布时间:2020-05-23 16:06:20 所属栏目:asp.Net 来源:互联网
导读:我正在使用Razor视图与asp mvc预览3 我正在尝试创建一些我想直接在视图中可用的方法。这些不是真正的Html帮助方法,所以我不认为扩展HtmlHelper是有道理的吗? 我的目标是能够在视图中调用方法,即 @HelloWorld(); vs @Html.HelloWorld() 我可以通过在HtmlHel
|
我正在使用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形成身份验证登录循环
- 实现ASP.NET MVC应用程序的全文搜索的最佳方法是什么?
- asp.net – 如何在runat =“server”表单元素中包含thead?
- asp.net-mvc – 如何在ASP.NET Web API中获取IpAddress和Us
- 在ASP.NET应用程序的global.asax中处理Application_Error
- asp.net-mvc – 是否由Razor支持lambda表达式?
- asp.net-mvc – 注销后,如果浏览器返回按钮,那么它返回最后
- asp.net-mvc – 获取ControllerName和ActionName并在Master
- global-variables – MVC 3 Razor _ViewStart中的公共变量
- asp.net – IE 8和客户端缓存
推荐文章
站长推荐
热点阅读
