微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的第二个 ajax 调用不会在 jquery 自动完成的选择函数上运行以更新 MVC 中的视图模型?

如何解决为什么我的第二个 ajax 调用不会在 jquery 自动完成的选择函数上运行以更新 MVC 中的视图模型?

我有一个附加到文本字段的自动完成功能的视图。这个想法是当用户自动完成字段中选择一个条目时,自动完成的选择部分将运行 ajax 来更新页面上的视图模型。自动完成功能可以完美地生成用户选择的值列表。

但是,这个选择部分不会运行我的ajax代码。我知道选择部分正在被击中,因为我在 ajax 调用前后都发出了警报。但是,它直接跳过了我的 ajax 代码,就好像它根本不存在一样!

我的观点是这样的:

UserLookup.cshtml

@model MyProject.viewmodels.UserPositionVM

<div class="form-group">
    @Html.Label("Employee Name",htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.Editor("UserLookup",null,new { htmlAttributes = new { @class = "form-control" } })
    </div>
</div>

<div id="userinfo">
    @Html.Partial("UserDetails")
</div>

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>

<script type="text/javascript">
    $(document).ready(function () {
        $("#UserLookup").autocomplete(
            {
                source: function (request,response) {
                    $.ajax({
                        url: "/Users/GetUserList",type: "POST",dataType: "json",data: { query: request.term },success: function (data) {
                            response($.map(data,function (item) {
                                var name = item[0] + " " + item[1] + " " + item[2];
                                return { label: name,data: item }

                            }));
                        }
                    });
                },select: function (event,ui) {
                    $(this).val(ui.item.label);
                    var theid = parseInt(ui.item.data[7]);
                    alert(theid);
                    $.ajax({
                        url: '@Url.Action("UserInfo","Users")',data: {lookid = theid},success: function (data) {
                            if (data) {
                                $("userinfo").html(data);
                            }
                        }
                    });
                    alert("all done.");
                }
            });
    });
</script>

相关控制器如下:

UsersController.cs

public ActionResult UserInfo(int lookid)
{
    Users user = db.Users.SingleOrDefault(x => x.uid == lookid);
    return PartialView(user);
}

public ActionResult UserLookup()
{
    UserPositionVM userposvm = new UserPositionVM();
    return View(userposvm);
}

我意识到我可能没有正确处理控制器;特别是,我如何返回模型/视图模型。但在此之前的问题是,当我放置断点时,甚至没有首先命中 UserInfo()。

我正在尝试做类似于此示例的操作:

stackoverflow.com/questions/32975369/

我做错了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。