gpt4 book ai didi

jquery - MVC 同时返回 json 和 html 响应

转载 作者:行者123 更新时间:2023-12-01 05:00:54 24 4
gpt4 key购买 nike

您好,我还没有找到解决我的问题的充分答案。我需要从 ajax 调用的操作结果返回 json 数据和 html。

$if (Request.IsAjaxRequest())
{
return Json(new
{
val1= Model.val1,
val2 = Model.val2,
val3= Model.val3,
Html = PartialView("_SearchResult", Model)
});
}

在ajax成功部分我必须做什么?这是一个糟糕的尝试:

$.ajax({
type: "post",
dataType: "json",
url: actionUrl,
data: {
specs: selections,
params: parameters
},
success: function (response) {
$("#maincontent").html( response.html);
val1= response.val1;
val2= response.val2;
val3= response.val3;
},
error: function (xHR) {
alert(xHR.status);
}
});

Val1,2,3 是我需要知道的变量,因为模型数据正在变化,我需要知道这个变化的值。如果您知道如何返回比 json 更好的值的解决方案,请告诉我。但我还需要返回响应 html 来更新部分页面。谢谢你帮助我。

最佳答案

PartialView 返回一个 ActionResult,而不是像您希望的那样以字符串形式返回部分 View 的 HTML。您需要做的是执行 ActionResult 以获取它将呈现的 HTML。

有几种方法可以做到这一点,但是 one quick and dirty way is to follow this article

至于更好的方式来做你正在做的事情,这取决于 val1-3 是什么。它们是 DOM 元素、本地变量还是全局变量?您可以让 PartialView 发出 javascript,调用某个函数来设置 val1-3 的值。像这样的东西:

public ActionResult Search()
{
// ...
return PartialView("_SearchResult", Model);
}

_SearchResult 部分 View :

<!-- your html here -->
<script type="text/javascript">
UpdateVals(@Model.val1, @Model.val2, @Model.val3);
</script>

其中 UpdateVals 是页面中进行 AJAX 调用的某个函数。

关于jquery - MVC 同时返回 json 和 html 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10225354/

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