将 JavaScript 对象转换为控制器的模型

Cast a javascript object into a model of the controller

本文关键字:控制器 模型 转换 JavaScript 对象      更新时间:2023-09-26

>我在js文件中创建了一个对象:

function Shape(name, color, count) {
    this.Name = name;
    this.Color = color;
    this.Count = count;
}
var apples = new Shape('apple', 'green', 5);

我想通过load'函数将这个"类"传递到控制器中,所以我写道:

$('#myDiv').load(url, { 'Shape': apples });

url是控制器中函数的 url:

function GetShape(shape as ShapeModel) as actionResult
End Function

虽然ShapeModel是:

Class ShapeModel
    Public Property Name As String
    Public Property Color As String
    Public Property Count As Integer
    Public Property IsHot As Boolean
End Class

该函数由 load 函数调用,但类的参数等于零。

我想将js文件(Shape)中的类转换为控制器(ShapeModel)中上述函数(GetShape)中的类。

这些类具有相同的属性,除了一个属性 (IsHot )。

我该怎么做?

我尝试将 js 的类作为 JSON.stringify 发送,然后在控制器中从给定字符串反序列化为 ShapeModel 类,但反序列化失败。

最佳解决方案是将其作为一个类发送,而不是将其字符串化。

任何帮助表示赞赏!

我相信

你的问题在于你如何在jQuery load调用中传递参数。 您正在使用 Shape 属性将Shape对象包装在另一个对象中。 相反,只需将Shape对象直接作为数据传递即可。

 $('#myDiv').load(url, apples);

我认为 MVC 只支持从正文绑定单个参数,因此您不需要指定参数名称的内容。