我想创建一个扩展方法,我可以使用@this在CSHTML文件中使用,所以我可以访问方法中的Layout和PageData属性。
现在,我想知道的是扩展哪个类,我尝试了StartPage和ViewStartPage。
答案 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
类。