Javascript MVC-PartialView不';无法在视图中找到事件
我有一个窗口,它的内容是通过局部视图加载的。由于将jscript代码放入部分视图只会导致问题,因此我尝试将其放入包含窗口的视图中 调试此页面时,在DropDownList事件上加载视图时,我立即收到一个未定义的错误,而其他事件都不起作用。我花了最后几个小时寻找解决方案,但什么也找不到 视图: 这不是完整的代码,但是把所有这些放在这里会有点过分 所以。。简单问题:为什么偏视图在包含它的视图中找不到事件?我怎样才能优雅地解决这个问题 提前谢谢,伙计们。:) [更新1] 因此,在将脚本引用从部分视图中移除之后,无论如何,这是我必须要做的事情。当页面尝试启动一个剑道/电传控制时,我得到一个“jQuery未定义”错误。。哎呀Javascript MVC-PartialView不';无法在视图中找到事件,javascript,asp.net-mvc,events,model-view-controller,telerik,Javascript,Asp.net Mvc,Events,Model View Controller,Telerik,我有一个窗口,它的内容是通过局部视图加载的。由于将jscript代码放入部分视图只会导致问题,因此我尝试将其放入包含窗口的视图中 调试此页面时,在DropDownList事件上加载视图时,我立即收到一个未定义的错误,而其他事件都不起作用。我花了最后几个小时寻找解决方案,但什么也找不到 视图: 这不是完整的代码,但是把所有这些放在这里会有点过分 所以。。简单问题:为什么偏视图在包含它的视图中找不到事件?我怎样才能优雅地解决这个问题 提前谢谢,伙计们。:) [更新1] 因此,在将脚本引用从部分视图中
jQuery(function(){jQuery("#UserGroupId").kendoDropDownList({"dataSource":[{"Text":"0023 10 - VZ_RSA","Value":"1"}],"dataTextField":"Text","popup":{"appendTo":"#fs1"},"dataValueField":"Value","optionLabel":"Bitte auswählen... "});});
我再次开始研究,试图将@section脚本放入视图中,并插入所有脚本。不幸的是,它没有做任何事情,是的,我的_布局中有渲染部分。我真的不知道发生了什么事。顺便说一句,Fiddler也没有显示任何错误
布局:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@*<link rel="stylesheet" href="http://kendo.cdn.telerik.com/<kendo ui version>/styles/kendo.common-bootstrap.min.css" />
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/<kendo ui version>/styles/kendo.bootstrap.min.css" />*@
<title>@ViewBag.Title - Meine ASP.NET-Anwendung</title>
@Scripts.Render("~/bundles/modernizr")
@Styles.Render("~/Content/kendo/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/kendo")
@Scripts.Render("~/bundles/jqueryeasing")
</head>
<body>
<div id="wrapper">
<header>
<div id="logo"></div>
<div id="logoHead">CrmImport</div>
<div id="links">
<a href="#">Über uns</a>
<a href="#">Hilfe</a>
<a href="#">Kontakt</a>
</div>
</header>
<div id="breadCrumpContainer">
<div id="breadCrump">@ViewContext.RouteData.Values["controller"]</div>
</div>
<nav>
<ul id="menu">
@* Linkname, Action, Controller *@
<li>@Html.ActionLink("Home", MVC.Home.Index()) </li>
<li>
@Html.ActionLink("Meine Profile", MVC.Profile.Index())
</li>
<li>
@Html.ActionLink("Meine Jobs", MVC.Profile.Index())
</li>
<li>
<a href="#">Administration</a>
<ul>
<li>@Html.ActionLink("Usergruppen verwalten", "Index", "UserGroups")</li>
<li>@Html.ActionLink("Log", "Index", "Log")</li>
<li>@Html.ActionLink("Globale Profile", "Index", "GlobalProfiles")</li>
<li>@Html.ActionLink("News verwalten", "Index", "News")</li>
</ul>
</li>
<content>
<div id="userBox">
@Html.Action("_User", "User")
</div>
</content>
</ul>
</nav>
</div>
<div id="content">
@RenderBody()
</div>
<div id="push"></div>
<footer>Copyright © DAK-Gesundheit 2015</footer>
@RenderSection("scripts", required: false)
</body>
</html>
<link href="~/Styles/Main.css" rel="stylesheet" />
@*
*@
@ViewBag.Title-Meine ASP.NET-Anwendung
@Scripts.Render(“~/bundles/modernizer”)
@style.Render(“~/Content/kendo/css”)
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/jqueryval”)
@Scripts.Render(“~/bundles/bootstrap”)
@Scripts.Render(“~/bundles/kendo”)
@Scripts.Render(“~/bundles/jqueryasing”)
CrmiImport
@ViewContext.RouteData.Values[“controller”]
@*链接名称、操作、控制器*@
- @ActionLink(“Home”,MVC.Home.Index())
-
@ActionLink(“Meine Profile”,MVC.Profile.Index())
-
@ActionLink(“Meine作业”,MVC.Profile.Index())
-
- @ActionLink(“Usergruppen-verwalten”、“Index”、“UserGroups”)
- @ActionLink(“日志”、“索引”、“日志”)
- @ActionLink(“Globale配置文件”、“索引”、“GlobalProfiles”)
- @ActionLink(“新闻verwalten”、“索引”、“新闻”)
@动作(“\u User”,“User”)
@RenderBody()
版权所有©DAK Gesundheit 2015
@RenderSection(“脚本”,必需:false)
最后,问题是剑道窗口,或者更确切地说是加载ist内容的时间,这是生成父视图的时刻
为了解决这个问题,我必须在单击特定按钮进行编辑和创建时加载windows内容
您可以忽略整个href部分。它是用来调试的
function createProfile() {
var window = $("#createProfileWindow").data("kendoWindow");
//Dynamisches Vorgehen nicht möglich. Daher muss die URL untersucht werden
//Hinweis: Für Produktiv/Test ist diese Funktion wahrscheinlich nicht notwendig, da Index nie "direkt" aufgerufen wird
var url = 'Profile/Add';
if ($(location).attr('href').indexOf("Index") >= 0) {
url = '@MVC.Profile.ActionNames.Add';
}
$("#createProfileWindow").kendoWindow({
content: {
url: url
}
});
window.open();
window.center();
profileId = null;
}
最后的问题是Kendo.Window,或者更确切地说是加载ist内容的时间,即构建父视图的时刻 为了解决这个问题,我必须在单击特定按钮进行编辑和创建时加载windows内容 您可以忽略整个href部分。它是用来调试的
function createProfile() {
var window = $("#createProfileWindow").data("kendoWindow");
//Dynamisches Vorgehen nicht möglich. Daher muss die URL untersucht werden
//Hinweis: Für Produktiv/Test ist diese Funktion wahrscheinlich nicht notwendig, da Index nie "direkt" aufgerufen wird
var url = 'Profile/Add';
if ($(location).attr('href').indexOf("Index") >= 0) {
url = '@MVC.Profile.ActionNames.Add';
}
$("#createProfileWindow").kendoWindow({
content: {
url: url
}
});
window.open();
window.center();
profileId = null;
}
老实说,如果你不经常重新加载那部分,只需将javascript放在部分中即可。partialview基本上是一种表单,只要我在部分视图中有脚本,提交就会发生两次,因为我必须在布局和部分视图中引用jquery,它才能工作。。。我真的开始讨厌MVC了。在父视图中,将代码放在section scripts标记中,但不要将代码放在partial中。老实说,如果您不经常重新加载该partial,只需将javascript放在部分视图中。部分视图基本上是一个表单,只要我在部分视图中有脚本,提交就会发生两次,因为我必须在布局和部分视图中引用jquery,它才能工作。。。我真的开始讨厌MVC了。在父视图中,将代码放在section scripts标签中,而不是将代码放在partial标签中。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@*<link rel="stylesheet" href="http://kendo.cdn.telerik.com/<kendo ui version>/styles/kendo.common-bootstrap.min.css" />
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/<kendo ui version>/styles/kendo.bootstrap.min.css" />*@
<title>@ViewBag.Title - Meine ASP.NET-Anwendung</title>
@Scripts.Render("~/bundles/modernizr")
@Styles.Render("~/Content/kendo/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/kendo")
@Scripts.Render("~/bundles/jqueryeasing")
</head>
<body>
<div id="wrapper">
<header>
<div id="logo"></div>
<div id="logoHead">CrmImport</div>
<div id="links">
<a href="#">Über uns</a>
<a href="#">Hilfe</a>
<a href="#">Kontakt</a>
</div>
</header>
<div id="breadCrumpContainer">
<div id="breadCrump">@ViewContext.RouteData.Values["controller"]</div>
</div>
<nav>
<ul id="menu">
@* Linkname, Action, Controller *@
<li>@Html.ActionLink("Home", MVC.Home.Index()) </li>
<li>
@Html.ActionLink("Meine Profile", MVC.Profile.Index())
</li>
<li>
@Html.ActionLink("Meine Jobs", MVC.Profile.Index())
</li>
<li>
<a href="#">Administration</a>
<ul>
<li>@Html.ActionLink("Usergruppen verwalten", "Index", "UserGroups")</li>
<li>@Html.ActionLink("Log", "Index", "Log")</li>
<li>@Html.ActionLink("Globale Profile", "Index", "GlobalProfiles")</li>
<li>@Html.ActionLink("News verwalten", "Index", "News")</li>
</ul>
</li>
<content>
<div id="userBox">
@Html.Action("_User", "User")
</div>
</content>
</ul>
</nav>
</div>
<div id="content">
@RenderBody()
</div>
<div id="push"></div>
<footer>Copyright © DAK-Gesundheit 2015</footer>
@RenderSection("scripts", required: false)
</body>
</html>
<link href="~/Styles/Main.css" rel="stylesheet" />
function createProfile() {
var window = $("#createProfileWindow").data("kendoWindow");
//Dynamisches Vorgehen nicht möglich. Daher muss die URL untersucht werden
//Hinweis: Für Produktiv/Test ist diese Funktion wahrscheinlich nicht notwendig, da Index nie "direkt" aufgerufen wird
var url = 'Profile/Add';
if ($(location).attr('href').indexOf("Index") >= 0) {
url = '@MVC.Profile.ActionNames.Add';
}
$("#createProfileWindow").kendoWindow({
content: {
url: url
}
});
window.open();
window.center();
profileId = null;
}