0

我在尝试什么:

使用 Asp.Net MVC3 / JQuery 将 id 传递给控制器​​获取结果并在 UI 中显示结果

我做了什么:

我有一个 contoller( [HttpPost] Index(Int? id)) ,它返回 listDetails 来查看

我有一个文本框,它通过 jquery 将 id 传递给控制器​​ Index 并将 listDetails 作为模型获取到 View

现在我正在尝试显示@Model.xyz.Name

我尝试在控制器中使用断点和模型调试代码,并获得有效数据。

我在视图中尝试了断点,它获取数据。

但是当我运行应用程序时,数据在 UI 上根本不可见。有人可以建议我哪里出错了吗?

控制器代码

[HttpGet]
public ActionResult Index()
{
    return View();
}



 [HttpPost]
        public ActionResult Index(int? Id)
        {
            if (Id.HasValue)
            {
get list of values
  return View(listOfValues);
}

查看代码

 @if (@Model != null)
            {
                @Model.Person.DisplayName
            }

具有自动完成功能的 Jquery 代码(触发选择)

$(document).ready(function () {

    $(function () {

        $("#tbxSearch").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "/Details/GetSearchData", type: "POST", dataType: "json",
                    data: { searchText: request.term, maxResults: 10 },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.label, value: item.label, id: item.value }
                        }))
                    }
                })
            },
            select: function (event, ui) {
                //alert(ui.item ? ("You picked '" + ui.item.label + "' with an ID of " + ui.item.id)
                //      : "Nothing selected, input was " + this.value);
                $.ajax({ url: 'PersonDetails',
                    type: 'POST',
                    data: { id: ui.item.id
                    },
                    async: false,
                    success: function (result) {
                       // alert("Success");
                        //$('#DivDetails').show();
                    }
                });
            }
        });

    });

});
4

1 回答 1

0

视图顶部的 using 语句是什么?它是 IEnumerable 吗?看起来您正在返回一个人员列表。

试着说 foreach(var item in Model) ... 看看你是否看到了什么。

于 2012-05-10T18:50:17.800 回答