【问题标题】:@Html.JQueryUI() - Does not contain a definition for JQueryUI@Html.JQueryUI() - 不包含 JQueryUI 的定义
【发布时间】:2014-02-28 08:52:27
【问题描述】:

我确定这很简单,我只是找不到它。

在我尝试使用 @Html.JQueryUI().something 的任何视图中,我收到一个编译错误,告诉我 JQueryUI 不包含 JQueryUI 的定义,并且没有 JQueryUI 类型的扩展方法,除了第一个参数键入 System.Web.MVC.HtmlHelper。我被问到是否缺少程序集引用或 using 语句。

通过查看页面源并单击返回正确文件的每个文件链接,我已验证所有必需的 js 和 css 文件在页面呈现到浏览器时都已加载到页面。

在这个 MVC 4 项目中,我使用 BundleConfig 类来包含以下所有 css/js 文件:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                    "~/Scripts/jquery-ui-1.10.4.custom.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));
bundles.Add(new StyleBundle("~/Content/themes/trontastic/css").Include(
                           "~/Content/themes/trontastic/jquery-ui-1.10.4.custom.css",
                           "~/Content/themes/base/jquery.ui.core.css",
                           "~/Content/themes/base/jquery.ui.resizable.css",
                           "~/Content/themes/base/jquery.ui.selectable.css",
                           "~/Content/themes/base/jquery.ui.accordion.css",
                           "~/Content/themes/base/jquery.ui.autocomplete.css",
                           "~/Content/themes/base/jquery.ui.button.css",
                           "~/Content/themes/base/jquery.ui.dialog.css",
                           "~/Content/themes/base/jquery.ui.slider.css",
                           "~/Content/themes/base/jquery.ui.tabs.css",
                           "~/Content/themes/base/jquery.ui.datepicker.css",
                           "~/Content/themes/base/jquery.ui.progressbar.css",
                           "~/Content/themes/base/jquery.ui.theme.css"));

我正在我的 _Layout 页面中呈现脚本/css

@Styles.Render("~/Content/themes/trontastic/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")

JQuery Validate 仅在创建和编辑视图页面上呈现。

 @Scripts.Render("~/bundles/jqueryval")

在任何视图的 .JQueryUI() 上返回此错误的代码行。

@Html.JQueryUI().Datepicker("anotherDate").MinDate(DateTime.Today).ShowButtonPanel(true)

通过查看页面源并单击每个文件链接,我已验证所有必需的 js 和 css 文件在浏览器中呈现时都已加载到页面。

【问题讨论】:

  • @Html.JQueryUI() 的 HtmlHelper 扩展在哪里?没听说过这个,你有自己的实现吗?
  • 感谢您回复 Simon... 是的,我确实使用此 jqueryuihelpers 链接作为测试,尝试添加日期选择器以查看我是否正确连接了创建表单 JQuery 的主题。我的主要目标是在整个网站上使用这个主题。

标签: jquery jquery-ui asp.net-mvc-4 bundle


【解决方案1】:

您必须在 webconfig 中为 JQueryUI HtmlHelper 添加命名空间。打开文件~/Views/Web.config 并添加:

<system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
       <namespaces>
           <add namespace="JQueryUIHelpers" />
       </namespaces>
    </pages>
</system.web.webPages.razor>

编辑

有时您必须关闭视图甚至 Visual Studio 以适应 weg.config 中的新命名空间

编辑 2

我刚刚通过 nuget 安装了这个包。命名空间会自动添加,但 dll 引用不会。查看您的参考资料并添加JQueryUIHelpers.dll 的参考资料并重建您的项目。为我工作。

【讨论】:

  • 我将您提供的示例代码添加到已保存并关闭VS的根webconfig文件中。现在项目的每个视图中的每个@Html 语句都有保存错误。
  • 我希望你没有包含整个 sn-p。您只需添加行 &lt;add namespace="JQueryUIHelpers" /&gt; 如果它还没有在里面!!
  • 我通过 NuGet 添加了对 JQueryUIHelpers 的引用,并删除了您提供的片段,然后仅添加了命名空间 。这已经纠正了我在缺少参考时遇到的问题。奇怪的是,我发现没有任何帖子/谷歌搜索有任何关于添加这个命名空间或 JQueryUIHelpers 作为参考的说明。无论如何感谢您的帮助西蒙这解决了我的问题!
【解决方案2】:

我还建议升级到 .net 框架 4.5.1 (http://msdn.microsoft.com/es-es/library/5a4x27ek(v=vs.110).aspx) 在我安装新版本并将项目应用程序属性更改为使用 4.5.1 之前,JQueryUIHelpers 对我不起作用。

【讨论】:

  • 这解决了我的问题。我只是将框架版本更改为 4.5.1,一切都很好!
【解决方案3】:

我遇到了同样的问题...

我已经安装了 .Net 4.5.1,web.config 已经正确并且 dll 已经添加。

我必须补充:

@using JQueryUIHelpers;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多