Razor View扩展方法?

时间:2011-05-19 09:28:32

标签: asp.net asp.net-mvc razor

我想创建一个扩展方法,我可以使用@this在CSHTML文件中使用,所以我可以访问方法中的Layout和PageData属性。

现在,我想知道的是扩展哪个类,我尝试了StartPage和ViewStartPage。

3 个答案:

答案 0 :(得分:2)

您需要将扩展​​方法添加到System.Web.Mvc.WebViewPage。 ViewStartPage和StartPage分别代表_ViewStart.cshtml文件(以及ASP.NET WebPages中的_PageStart.cshtml)。

答案 1 :(得分:1)

喂,

如果我理解正确,HTML帮助方法可以帮助您。

您可以将您在页面中拥有的所有变量作为参数传递。

@Html.ShowMyText(Model.YourStringToUse)

在你的助手方法中,你可以做你的逻辑并返回应该渲染的东西。 (我可以修改你的helper.ViewContext对象中的一些东西。

你的Html帮助器看起来像这样:

public static HtmlString ShowMyText(this HtmlHelper helper,string pourStringToUse)
{ 
     CultureInfo cultureInfo = (CultureInfo)helper.ViewContext.HttpContext.Session["CurrentLanguage"];

    if (cultureInfo.IetfLanguageTag.Equals("en-EN") == true)
    {
        return new HtmlString("English");
    }
    else
    {
        return new HtmlString("Not English");
    }
}

所以也许它会给你一个起点。无论如何,您可能无法访问所需的一切。

答案 2 :(得分:0)

你应该选择所有Razor视图继承的WebPageBase类。