jQuery技术:使用AJAX加载部分视图不起作用

请原谅我,我是MVC和AJAX的新手。

目前我只是提交一个表单,我想使用表单中的数据使用ajax在局部视图中更新表。

我的_UserInfo局部视图如下所示:

 @model IEnumerable  @foreach (var item in Model) {  } 
Firstname Lastname EmailAddress
@Html.DisplayFor(modelItem => item.firstName) @Html.DisplayFor(modelItem => item.surname) @Html.DisplayFor(modelItem => item.emailAddress) @Html.DisplayFor(modelItem => item.SAMuserName)

我的主要User视图如下所示:

 @model Dashboard.Models.User @Scripts.Render("~/bundles/jqueryval") @using (Ajax.BeginForm("_UserInfo", "User", new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "results", InsertionMode = InsertionMode.Replace })) { 
//...My Form

}

最后这是我的UserController

 public PartialViewResult UserResults(User person) { UserInfo personInfo = new UserInfo(); //....Doing stuff return PartialView("_userInfo", personInfo); } 

现在我知道这可能并不好。 但这是我用我的小知识尝试过的最好的尝试。

当我单击用户视图上的按钮时,我收到404错误,指出无法找到_UserInfo。

我相信我所有问题的根源都在于

  @using (Ajax.BeginForm("_UserInfo", "User", new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "results", InsertionMode = InsertionMode.Replace })) 

但据我所知,我不知道出了什么问题。


* 编辑: *正如我已经指出的那样,我错误地创建了我的HTML表单。 我已经把它改成了

@using(Ajax.BeginForm(“UserResults”,“User”,new AjaxOptions(){…}

我的行动现在被召唤! 但是,我的部分视图未加载到屏幕上。

    对于特定的重载,前两个字符串是ActionName和ControllerName MSDN 。 因此,它应该镜像您的控制器,如下所示:

     @using (Ajax.BeginForm("userResults", "User", new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "results", InsertionMode = InsertionMode.Replace })) 

    此外,值得注意的是,在以下命名约定中,userResults应该重命名为UserResults

    编辑:确保您使用的是Ajax.BeginForm(请参阅更新),并且您还在包中添加了ajax不显眼的脚本。 在BundleConfig.RegisterBundles中,您应该添加以下bundle。

     bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.unobtrusive*")); 

    在HTML中,确保调用两个包。

     @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval") 

    你需要使用Ajax.BeginForm而不是Html.BeginForm

     @using (Ajax.BeginForm("userResults", "User", new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "results", InsertionMode = InsertionMode.Replace })); 

    代码看起来不错。 有必要添加脚本:

     bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include("~/Scripts/jquery.unobtrusive*")); @model Dashboard.Models.User @Scripts.Render("~/bundles/jqueryval") @using (Ajax.BeginForm("_UserInfo", "User", new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "results", InsertionMode = InsertionMode.Replace })) { 
    //...My Form

    }

    现在,您的代码可以正常运行。

    需要了解更多jQuery教程分享使用AJAX加载部分视图不起作用,都可以关注jQuery技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是jQuery教程分享使用AJAX加载部分视图不起作用相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/981336.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐