【问题标题】:Using Url.Content in ASP.net MVC 2.0在 ASP.net MVC 2.0 中使用 Url.Content
【发布时间】:2010-10-12 07:41:48
【问题描述】:

我已经看到很多使用 Url.Content 引用 javascript 的示例,在 MVC 2 中形成 MasterPages。

    <script src="<%: Url.Content("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript"></script>

但是在运行时我失败了,

编译错误 说明:在编译服务此请求所需的资源期间发生错误。请查看以下具体错误详情并适当修改您的源代码。

编译器错误消息:CS0103:名称“Url”在当前上下文中不存在。

我还没有找到声明 Url 命名空间的位置,是否应该使用其他程序集?

VS2010、IIS 7、ASP.net MVC 2.0

【问题讨论】:

  • 去掉那条线,你的应用能正常运行吗?

标签: asp.net-mvc


【解决方案1】:

确保您的母版页继承 System.Web.Mvc.ViewMasterPage

【讨论】:

    【解决方案2】:

    亚历克斯,

    尝试添加以下扩展方法,看看它是否能让你更进一步

    public static partial class HtmlHelperExtensions
    {
        public static string Script(this HtmlHelper html, string path)
        {
            var filePath = VirtualPathUtility.ToAbsolute(path);
            HttpContextBase context = html.ViewContext.HttpContext;
            // don't add the file if it's already there
            if (context.Items.Contains(filePath))
                return "";
            return "<script type=\"text/javascript\" src=\"" + filePath + "\"></script>";
        }
    }
    

    用法:

    <%=Html.Script("~/Scripts/jquery-1.4.2.min.js")%>
    

    我知道它不会直接回答你的问题,但会让你向前移动...

    【讨论】:

    • 吉姆,谢谢!这实际上是可以接受的..但我会尝试找出为什么 Url.Content 不存在???我现在正在谷歌搜索,找不到它的文档..也许它真的消失了?
    【解决方案3】:

    删除了编辑,因为单引号被视为字符文字,因此会导致“文字中的字符过多”错误。最可能的原因仍然是一个错字,恕我直言。

    ORIGINAL POST(仍然是 UrlHelper 类):

    Url.Content():这里的Url是一个辅助方法,有点像Html或者Ajax的辅助方法。

    在代码中,我相信它的类是:

    System.Web.Mvc.UrlHelper

    即命名空间是System.Web.Mvc。

    所以很奇怪,如果你真的在使用上面详述的规范,你就不能使用它。

    【讨论】:

    • 说真的.. 没有 System.Web.Mvc.UrlHelper 程序集,没有这样的命名空间。
    • 我没说有。我说System.Web.Mvc命名空间中有一个类叫UrlHelper。
    • 又一个错误:CS1012:字符文字中的字符太多,在同一行中..好奇怪..(
    • 对不起!在 Url.Content 中使用单引号是错误的。请参阅以下 SO 线程:
    猜你喜欢
    • 1970-01-01
    • 2014-07-11
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多