0

Kendo UIASP.NET MVC 4.0 アプリケーションで使用しています。

詳細テンプレートに詳細テンプレートを含むグリッドがあります。フォームがあります。

  @(Html.Kendo().TabStrip()
            .Name("TabStrip_#=UserID#")
            .SelectedIndex(0)
            .Events(e => e.ContentLoad("UserDetailsEditable"))
            .Items(tab =>
            {
                tab.Add().Text("User Details")
                    .LoadContentFrom("UserDetails", "User", new { UserID = "#= UserID #"});
            })
            .ToClientTemplate()

)

このフォームは、モデル データ アノテーションから派生した検証を実行していません。

それは私の検証スクリプトを認識していないためです

 @Scripts.Render("~/bundles/jqueryval")
  bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*"));

この参照 @Scripts.Render("~/bundles/jqueryval") をlayout.cshtmlからForm ビューに移動すると、検証は機能しますが、フォームの投稿は複数回行われます。私のスクリプト参照は詳細テンプレートごとに複数回読み込まれるためです。

どうすればこの問題を克服できますか?

解決策:

jQuery Val バンドルを分割しました

  //bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
            //           "~/Scripts/jquery.unobtrusive*",
            //           "~/Scripts/jquery.validate*"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

            bundles.Add(new ScriptBundle("~/bundles/unobtrusive").Include(
                       "~/Scripts/jquery.unobtrusive*"));

私のレイアウトでは、私は与えただけです @Scripts.Render("~/bundles/unobtrusive")

私が与えたすべてのフォームビューで @Scripts.Render("~/bundles/jqueryval")

それは問題を解決しました。これが他の人を助けることを願っています

4

1 に答える 1

0

jQuery Val バンドルを分割しました

 //bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
            //           "~/Scripts/jquery.unobtrusive*",
            //           "~/Scripts/jquery.validate*"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

            bundles.Add(new ScriptBundle("~/bundles/unobtrusive").Include(
                       "~/Scripts/jquery.unobtrusive*"));

私のレイアウトでは、私は与えただけです@Scripts.Render("~/bundles/unobtrusive")

私が与えたすべてのフォームビューで@Scripts.Render("~/bundles/jqueryval")

それは問題を解決しました。これが他の人を助けることを願っています

于 2013-03-14T13:15:21.147 に答える