gpt4 book ai didi

c# - 如何通过 AJAX 渲染局部 View ?

转载 作者:太空狗 更新时间:2023-10-30 00:09:01 26 4
gpt4 key购买 nike

这对于 MVC 专家来说应该相对简单,但我仍在学习中。

  • 我有一个不是强类型的 View ,只是 ViewPage<dynamic> .
  • 在这个 View 中,我有一个文本框,它是使用 jQuery 的自动完成功能扩展的
  • 当用户在文本框中输入内容时,AutoComplete 会对 Controller 执行 AJAX 调用,Controller 调用存储过程,返回 JSON 记录集合,具有 2 个属性:
    • ID(商品的标识符)
    • 名称(项目名称)

现在,使用 jQuery AutoComplete UI 插件,当用户单击自动完成中显示的其中一项时,将调用客户端事件,并传递 JSON 对象:

// .. snip heaps of jQuery
select: function (event, ui) {
// ui is a JSON object:
// ui.item.id
// ui.item.name
}

现在我的问题是 - 从这个客户端事件开始,我需要在同一页面上(在 texbox 下方)显示有关此项目的扩展信息。 (显然需要对服务器进行另一个 AJAX 调用)。

我该怎么做?我唯一能想到的就是简单地让 jQuery 调用另一个返回单个 JsonResult 的 Controller 。 ,然后手动解析这个 JSON,显示我想要的 HTML。

只有这样吗?有我可以使用的 helper 吗?我的 View 不是强类型的原因是因为当页面加载时,没有显示关于模型的信息,只是一个文本框。

我真的希望我可以创建一个强类型的分部 View ,并以某种方式在这个分部 View 上调用 RenderPartial,传递我要显示的项目的 ID。这可能来自客户端/AJAX 吗?

最佳答案

您可以使用 jQuery 从 Controller 请求 html 和 Json。所以你的 jQuery 看起来像这样:

$.get(action, null, function(data){
$('#someDiv').html(data);
}, 'html');

你的 Controller 可以返回:

return PartialView("SomePartial", Model)

然后 html 将呈现到屏幕上

关于c# - 如何通过 AJAX 渲染局部 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3992789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com