0

我正在开发一个带有远程验证的 MVC 应用程序。我在浏览器控制台中收到 No element found 错误。我收到了很多 Jquery not found 错误,我可以通过呈现所需的脚本来消除这些错误。现在我在浏览器控制台中只有一个错误。

我的视图脚本:放置在页脚

@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 流量分析,发现没有丢失或损坏的请求和响应。我仍然有创建按钮不起作用。不发布任何值。

4

2 回答 2

1

我通过在 VS 2015 中停用 browserlink 来解决它:

在此处输入图像描述

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

于 2016-06-28T12:58:38.363 回答
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 行 - 这是布局中一个位置的定义,如果您在视图中添加以下内容,则视图中的脚本将显示该位置

@section scripts {

// your javascript code here

}
于 2015-10-02T10:34:04.327 回答