Kendo UI
ASP.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")
それは問題を解決しました。これが他の人を助けることを願っています