gpt4 book ai didi

asp.net-mvc - ASP MVC Razor View 扩展方法,如何创建 'global' View 方法?

转载 作者:行者123 更新时间:2023-12-03 12:41:46 27 4
gpt4 key购买 nike

我正在使用带有 asp mvc preview 3 的 Razor View

我正在尝试创建一些我希望直接在 View 中可用的方法。这些不是真正的 Html 辅助方法,所以我认为扩展 HtmlHelper 没有意义?

我的目标是能够在 View 中调用方法,即

@HelloWorld(); vs @Html.HelloWorld()

我可以通过在 HtmlHelper 上创建扩展方法来使 Html.HelloWorld 工作
public static class HtmlExtensions
{
public static string HelloWorld(this HtmlHelper helper)
{
return "Hello";
}
}

我想做同样的事情,但为了 View ;我的问题 - View 是什么类型的对象?

注意:我可以通过在 .cshtml 页面中定义方法来实现这一点
@functions 
{
public string HelloWorld()
{
return "Hello";
}
}

@HelloWorld() @* now this works *@

然后我尝试将此代码放在我的 _viewstart.cshtml 文件中,认为它可以在所有 View 中使用,但事实并非如此

如果我知道 View 是哪种类型,我认为它可以很容易地扩展,任何帮助表示赞赏

最佳答案

正如其他人所说,Razor Views 最终都继承自 WebViewPage:

public abstract class WebViewPage<TModel> : WebViewPage

因此,您可以简单地为 WebViewPage 编写扩展方法,而无需创建新的基类或更改配置文件,这是其他答案所建议的。例如:
public static class WebViewPageExtensions
{
public static string HollowWorld(this WebViewPage wvp)
{
return "Memento mori";
}
}

将该命名空间的 using 语句添加到您的 View 中,然后:
<p>@this.HollowWorld()</p>

关于asp.net-mvc - ASP MVC Razor View 扩展方法,如何创建 'global' View 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3980032/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com