C# razor视图引擎中的全局函数
我希望在razor视图引擎中有一个全局方法,如C# razor视图引擎中的全局函数,c#,asp.net-mvc,c#-4.0,razor,asp.net-mvc-4,C#,Asp.net Mvc,C# 4.0,Razor,Asp.net Mvc 4,我希望在razor视图引擎中有一个全局方法,如w,用于对MVC应用程序进行本地化。我试过了 @functions{ public string w(string message) { return VCBox.Helpers.Localization.w(message); } } 但是我应该在我的每一页上都有这个,我不想那样我想知道如何在项目的每一页中使用全局函数?扩展方法如何: namespace System { public st
w
,用于对MVC应用程序进行本地化。我试过了
@functions{
public string w(string message)
{
return VCBox.Helpers.Localization.w(message);
}
}
但是我应该在我的每一页上都有这个,我不想那样我想知道如何在项目的每一页中使用全局函数?扩展方法如何:
namespace System
{
public static class Extensions
{
public static string w(this string message)
{
return VCBox.Helpers.Localization.w(message);
}
}
}
这样称呼:
"mymessage".w();
或:
或:
您可以扩展HtmlHelper: 扩展:
public static class HtmlHelperExtensions
{
public static MvcHtmlString W(this HtmlHelper htmlHelper, string message)
{
return VCBox.Helpers.Localization.w(message);
}
}
Cshtml:
@Html.W("message")
如您所见,我可以使用
VCBox.Helpers.Localization.w(message)但是我需要一个更好的方法@艾哈迈达利沙菲。你将要得到的最短的将有一个“.”。你如何定义“更好的方式”?我想要像Wordpress和其他应用程序一样的w
。有一个write
方法来写东西,现在我想让w
来写,但是要本地化写。改为针对ViewPage编写扩展方法<代码>公共静态字符串w(此视图页面视图,字符串消息){/*do stuff*/}
。然后您应该能够直接执行w(“mymessage”)
。我尝试了,但编译器没有找到w
。我还将
添加到web.config
中的
部分中,难道没有办法只使用w
方法吗?@Ahmadalishafie必须在当前范围内声明它(就像您在问题的示例中所做的那样)。@Ahmadalishafie看到这个问题了吗
public static class HtmlHelperExtensions
{
public static MvcHtmlString W(this HtmlHelper htmlHelper, string message)
{
return VCBox.Helpers.Localization.w(message);
}
}
@Html.W("message")