Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# razor视图引擎中的全局函数_C#_Asp.net Mvc_C# 4.0_Razor_Asp.net Mvc 4 - Fatal编程技术网

C# 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

我希望在razor视图引擎中有一个全局方法,如
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)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")