gpt4 book ai didi

jquery - 使用 jquery 从 View 模型( View 到 Controller )传递类列表

转载 作者:行者123 更新时间:2023-12-01 08:44:31 25 4
gpt4 key购买 nike

我有一个 View ,其中包含 View 模型作为模型。我想将 View 模型中的一个类(这是某个类的列表)从 View 发送到 Controller 到操作。

这是我的 View 模型

public class CustomClass
{
public ABC objABC { get; set; }
public DEF objDEF { get; set; }
public List<XYZ> objXYZLst { get; set; }
}

这是 XYZ 类

 public class XYZ
{
public long RelationPersonId { get; set; }
public string Relationship { get; set; }
public string PhoneNo { get; set; }
public string PropertyName { get; set; }
public bool IsPropertyError { get; set; }

}

这是我的 View 调用

  var url = "@Url.Action("ActionName", "ContollerName")";
var model = '@Html.Raw(Json.Encode(Model.objXYZLst))';
$.ajax({
type: 'post',
url: url,
data: JSON.stringify(model),
contentType: 'application/json',
dataType: "json",
success: function (data) {
$("#dvLst").html(data);
}
});

这就是我的行动

[HttpPost]
public PartialViewResult ActionName(List<XYZ> model)
{
return PartialView(model);
}

值在 Controller 中始终为空,并且 Model.objXYZLst 有两个数据数组。请帮忙

最佳答案

您已在此处声明了一个字符串变量:

var model = '@Html.Raw(Json.Encode(Model.objXYZLst))';

虽然你需要一个 javascript 对象,所以去掉周围的引号,它就会工作:

var model = @Html.Raw(Json.Encode(Model.objXYZLst));

代码的另一个问题是您指定的预期返回类型:

dataType: "json",

但是您的 Controller 操作返回 HTML 片段:

public PartialViewResult ActionName(List<XYZ> model)
{
return PartialView(model);
}

当 jQuery 尝试将此 HTML 反序列化回 JavaScript 对象时,它将失败,并且您的 success 回调将不会在客户端上调用。因此,也摆脱这个 dataType: "json", 并让 jQuery 使用 Content-Type 响应 header 自动推断它。

关于jquery - 使用 jquery 从 View 模型( View 到 Controller )传递类列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43841438/

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