glo*_*rob 3 .net c# asp.net-mvc
也许这对程序员来说是一个问题 - 我相信如果有的话,有人会建议我.
当使用MVC时,我也可以访问Html Helper变量并使用任何扩展方法,无论是.Net的还是我自己指定的.
@Html.Raw("<h1>This is my HTML</h1>")
Run Code Online (Sandbox Code Playgroud)
这是如何实现的?假设我想为了另一个原因添加一个单独的对象,并将其提供给我的MVC应用程序中的所有视图?
我知道我无法将其添加到控制器,因为一个视图可能被多个控制器访问.
所以我最好的猜测是需要继承IView?
编辑:抱歉 - 我没有解释自己.至少我认为......
我希望对象可用,但也要实例化.例如,假设我有一个名为的对象glosrob,有一个方法,SayHello()并希望能够如此使用它:
@glosrob.SayHello()
Run Code Online (Sandbox Code Playgroud)
基本上我想避免在每个视图上添加代码来构造对象,例如避免这种情况
@{
var glosrob = new Glosrob();
}
Run Code Online (Sandbox Code Playgroud)
如何在MVC中为所有视图提供Html助手?
在views文件夹中,您将找到一个单独的web.config文件.在配置文件中将是所有视图派生自的类:
<pages pageBaseType="System.Web.Mvc.WebViewPage">
Run Code Online (Sandbox Code Playgroud)
因此,所有视图都派生自WebViewPage类,该类包含一个名为Html的属性,用于公开HtmlHelper.
假设我想为了另一个原因添加一个单独的对象,并将其提供给我的MVC应用程序中的所有视图?
如果您想要暴露自己的自定义属性,您应该阅读更改Razor View的基本类型.
首先,您使用自己的属性创建自己的类:
public abstract class CustomWebViewPage : WebViewPage {
public Glosrob Glosrob { get; set; }
public override void InitHelpers() {
base.InitHelpers();
Glosrob = new Glosrob ();
}
}
Run Code Online (Sandbox Code Playgroud)
并更新您的配置:
<pages pageBaseType="MyProject.Web.CustomWebViewPage">
Run Code Online (Sandbox Code Playgroud)
然后你可以在你的视图中调用它:
@Glosrob.SomeMethod();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |