如何导入 URLExtension 以便其可用于所有视图和视图Ascx(Asp.NET MVC 2)
我正在使用扩展类来提取图像、CSS、脚本等。
在 UI 层中,我有母版页、视图 (aspx) 和部分视图 (ascx)。是否需要在每个 Master、View 和 View 中导入 <%@ Import Namespace="Resorts.Web.Helpers" %>
阿斯克斯?如果我在 Master 中导入,为什么我的 Views & ascx自动知道吗?我做错了吗?
namespace Resorts.Web.Helpers
{
public static class UrlHelperExtension
{
public static string Image(this UrlHelper helper, string fileName)
{
return helper.Content("~/Content/Images/" + fileName);
}
public static string Stylesheet(this UrlHelper helper, string fileName)
{
return helper.Content("~/Content/CSS/" + fileName);
}
public static string Script(this UrlHelper helper, string fileName)
{
return helper.Content("~/Scripts/" + fileName);
}
}
}
I am using a extension class for pulling images, css, scripts etc.
In the UI layer, I have Master Pages, Views (aspx) and Partial Views (ascx). Is it required to Import <%@ Import Namespace="Resorts.Web.Helpers" %>
inside each Master, View & Ascx? If I import inside Master, why can't my Views & Ascx automatically know about it? Am I doing it wrong way?
namespace Resorts.Web.Helpers
{
public static class UrlHelperExtension
{
public static string Image(this UrlHelper helper, string fileName)
{
return helper.Content("~/Content/Images/" + fileName);
}
public static string Stylesheet(this UrlHelper helper, string fileName)
{
return helper.Content("~/Content/CSS/" + fileName);
}
public static string Script(this UrlHelper helper, string fileName)
{
return helper.Content("~/Scripts/" + fileName);
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您希望它在所有或大部分页面中可用,那么使用 import 指令确实是错误的方法。
添加可用命名空间的方法是在 web.config 文件中。应该有这样一个部分:
只需将 Resorts.Web.Helpers 添加到命名空间列表中。您可能需要重建您的应用程序或随后重新启动 VS,但这现在将使您的名称空间在母版页、视图和部分中可用。
If you want it available in all or most of your pages then using the import directive is indeed the wrong way to do it.
The way to add an available namespace is in your web.config file. There should be a section like:
Just add Resorts.Web.Helpers to the list of namespaces. You might need to rebuild your app or restart VS afterwards but this will now make your namespace available in masterpages, views and partials.