我正在使用远程验证开发MVC应用程序。我在浏览器控制台中收到No element found错误。我得到了很多Jquery未找到的错误,我可以通过呈现所需的脚本来删除。现在我在浏览器控制台中只有一个错误。
我的浏览脚本:放在页脚
中@section Scripts {
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/scripts/jquery-1.10.2.js")
@Scripts.Render("~/Scripts/jquery.validate.min.js")
@Scripts.Render("~/Scripts/jquery.validate.js")
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.js")
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js")
@Scripts.Render("~/Scripts/jquery-1.10.2.min.js")
@Scripts.Render("~/Scripts/jquery-ui-1.11.4.min.js")
@Scripts.Render("~/~/Scripts/jquery.unobtrusive-ajax.js")
}
布局:在身体之前(基于我读过的建议)
<title>@ViewBag.Title - My ASP.NET Application</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
<script src="@Url.Content("~/Scripts/jquery-ui-1.11.4.min.js")"></script>
我怎样才能使这个工作?我使用了远程验证,我想我的代码中缺少用于验证的Jquery。但是我已经添加了我所遵循的远程验证教程中提到的所有脚本文件(虽然我添加了更多)。
远程验证
[HttpPost]
public JsonResult DuplicateFamilyName(string FamilyName, int FamilyID)
{
//bool idExists = db.LsystemFamily.Any(id=>id.LsystemFamilyID.Equals(FamilyID));
if (FamilyID == 0)
{
bool exists = db.LsystemFamily.Any(x => x.FamilyName == FamilyName);
//var name = db.LsystemFamily.Where(x => x.FamilyName.Equals(FamilyName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
return Json(!exists, JsonRequestBehavior.AllowGet);
}
else
{
bool exists = db.LsystemFamily.Where(x => x.LsystemFamilyID != FamilyID).Any(x => x.FamilyName == FamilyName);
//var name = db.LsystemFamily.Where(x => x.FamilyName.Equals(FamilyName, StringComparison.CurrentCultureIgnoreCase) && x.LsystemFamilyID != FamilyID).FirstOrDefault();
return Json(!exists, JsonRequestBehavior.AllowGet);
}
}
修改
getPreventDefault() sollte nicht mehr verwendet werden. Verwenden Sie stattdessen defaultPrevented. jquery-1.10.2.js:5389:0
Kein Element gefunden send:1:1
Kein Element gefunden send:1:1
Kein Element gefunden send:1:1
Kein Element gefunden
编辑:
我已从我的程序中删除了Json验证。它仍然无法解决问题。根据Torm的评论,我完成了http流量分析,发现没有丢失或损坏的请求和响应。我仍然没有创建按钮。没有发布任何值。
答案 0 :(得分:1)
答案 1 :(得分:0)
让我们把事情弄清楚。
在您的布局中,您引用了应用程序运行所需的脚本。在默认的MVC5项目模板中,出于站点性能原因(http://www.asp.net/mvc/overview/performance/bundling-and-minification)将它们捆绑到包中。您的布局应该类似于下面的内容(javascript应该到底部 - 这是最佳做法):
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<div class="container body-content">
@RenderBody()
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
请注意,脚本包在〜/ App_Start / BundleConfig.cs文件中默认定义 另请注意RenderSection行 - 这是布局中某个地方的定义,如果您要在视图中添加以下内容,则会显示来自Views的脚本
@section scripts {
// your javascript code here
}