2

明らかに何かが足りませんが、オートコンプリートをテキストボックスに追加しようとすると、次のメッセージが表示され続けます。.autocompleteは関数ではありません

_Layout(ヘッドセクションのみ):

<head>
 <meta charset="utf-8" />
 <title>@ViewBag.Title - My ASP.NET MVC Application</title>
 <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
 <meta name="viewport" content="width=device-width" />
 <link href="../../Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
 <script src="../../Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
 <script src="../../Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
 @Styles.Render("~/Content/themes/base/css", "~/Content/css")
 @Scripts.Render("~/bundles/modernizr")

索引:

    <script type="text/javascript">
$(function () {
    $("#searchTerm").autocomplete({
       source: "/Search/AutocompleteSuggestions",
       minLength: 3,
       select: function (event, ui) {
             if (ui.item) {
                $("#searchTerm").val(ui.item.value);
                $("form").submit();
             }
       }
      });
});

@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }))'
{
<input id="searchTerm" name="searchTerm" type="text" />
<input type="submit" value="Go" />
}

Jqueryプラグインが正しく読み込まれていないことは確かですが、理由がわかりません。

4

4 に答える 4

4

1時間ほど頭をかいた後、問題が見つかったので、次のようにします。

  1. JavaScriptを@sectionScripts{}セクションに追加する必要があります
  2. 次のパッケージを含める必要がありました:@ Scripts.Render( "〜/ bundles / jqueryval")@ Scripts.Render( "〜/ bundles / jqueryui")

MVC4には正しいJQueryファイルが付属しており、デフォルトの構成にはすでに必要なパッケージが含まれています。

これが他の誰かに役立つことを願っています。

于 2012-06-15T19:30:35.330 に答える
1

メソッドが定義されているjquery-ui-1.8.11.jsスクリプトが含まれていないようです。autocompete必要なものだけを含めましjquery-1.6.2.min.jsたが、十分ではありません。また、バンドルを使用して、必要なスクリプトとスタイルを1つのファイルに結合および縮小して、帯域幅を減らし、ページの読み込み時間を改善することをお勧めします。

<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title - My ASP.NET MVC Application</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/themes/base/css")" rel="stylesheet" type="text/css" />
    <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
    <meta name="viewport" content="width=device-width" />
</head>
于 2012-06-10T17:01:37.437 に答える
0

私の場合、ファイルBundleConfig.csは登録されています

bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-{version}.js")); 

JQueryUIで問題が発生します。私はそれを次のように変更しました:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-1.7.1.min.js")); 

そしてそれは動作します。

于 2012-10-05T16:37:43.760 に答える
0

Jqueryプラグインが正しくロードされていないことはかなり確信しています

jqueryプラグインが正しくロードされていないことをどのように知っていますか?まず、参照するスクリプト/スタイルを直接組み合わせ、System.Web.Optimizationヘルパー(@Scripts@Styles..)を使用して、物事を台無しにするのをやめる必要があります。

いずれかのアプローチを使用してください。まず、を使用して必要なcssとスクリプトを直接ロードし、Url.Contentすべてが正常に機能することを確認してから、完全にとに置き換えること@Scriptsをお勧めします@Styles

バンドル/ミニファイについて詳しくは、このリンクを参照してください

http://ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html#_putting_asp_net_mvc_to_work

于 2012-06-10T17:16:12.163 に答える