找不到任何元素Firefox控制台:MVC

时间:2015-10-02 09:41:34

标签: javascript jquery asp.net-mvc-5 asp.net-ajax remote-validation

我正在使用远程验证开发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流量分析,发现没有丢失或损坏的请求和响应。我仍然没有创建按钮。没有发布任何值。

2 个答案:

答案 0 :(得分:1)

我通过停用VS 2015中的browserlink解决了这个问题:

enter image description here

然后这些错误就消失了。我也使用德语窗口..所以也许有连接。

答案 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

}