我有一个MVC项目,包括几个领域。
我想编写自定义 Razor SDL_HINT_RENDER_SCALE_QUALITY
,它将在特定区域内的视图中共享。常见的方法是在项目根目录中@helper
文件夹中存储的.cshtml
文件中编写帮助程序,但这样可以从多个区域访问这些帮助程序。
有没有办法让剃刀App_Code
只针对一个区域分开?
答案 0 :(得分:1)
Razor助手是"公共静态"内部方法" public static"因此,无论哪个区域,它们都可能对所有视图都有用。
答案 1 :(得分:0)
您不必在应用代码中添加它们。您可以创建一个类并添加静态扩展方法。如果您只想查看某些视图,请在不同的命名空间中创建它们,并在视图中添加使用。
答案 2 :(得分:0)
要使用的自定义帮助程序,您必须在视图的开头声明,或者您可以在您的视图文件夹中的web.config中注册。例如:
我的自定义助手是:
namespace MyCustomSystem.Web.Helpers
{
public static class CustomHelpers
{
public static MvcHtmlString GroupedActionButtons(this HtmlHelper helper, string controller, long id)
{
var stringBuilder = new StringBuilder();
//Do your logic here.
return MvcHtmlString.Create(stringBuilder.ToString());
}
}
}
在你的web.config中:
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="MyCustomSystem.Web" />
<add namespace="MyCustomSystem.Web.Helpers" />
</namespaces>
</pages>
</system.web.webPages.razor>
这样做,只有已注册Helper的区域才有效,您无需在视图中声明using
。