数据模型在控制器中没有得到反序列化

本文关键字:反序列化 控制器 数据模型 | 更新日期: 2023-09-27 18:05:38

这是我的模型class

public class ProductModel
{
    public Product {set;set;} // Product is one more class
}

我使用下面的javascript代码来获得部分视图,但'模型'在控制器中没有得到反序列化…我错过了什么?

在HTML属性中存储数据,如下所示

JavaScriptSerializer serializer = new JavaScriptSerializer();
var jsonObject = serializer.Serialize(obj)
<span data-singleproduct="@jsonObject" id="@mprodid" class="ShowProductModal">Find out more..</span>

使用jQuery调用部分页面和弹出

$('.ShowProductModal').on('click', function () {
    var model = $(this).data('singleproduct');
    //I can see data of variable model here in developer tool
    $("#ProductModal").dialog({
        autoOpen: true,
        position: { my: "center", at: "top+350", of: window },
        width: 1000,
        resizable: false,
        title: '',
        modal: true,
        open: function () {
            $(this).load('ShowProductModal', model );
        },
        buttons: {
        }
    });
    return false;
});

这是我的控制器代码

public PartialViewResult ShowProductModal(ProductModel product)
{
    return PartialView("ProductModal", product);
}

product总是null!!

如果我将ProductModel更改为Product,那么它将工作…! 有人能帮帮我吗?

public PartialViewResult ShowProductModal(Product product)
{
    return PartialView("ProductModal", product);
}

数据模型在控制器中没有得到反序列化

你应该试试

$(this).load('ShowProductModal', { product: model });

并像这样声明你的方法:

[HttpPost]
public PartialViewResult ShowProductModal([FromBody] JObject data)
{
    var product = data["product"].ToObject<ProductModel>();
    return PartialView("_SC5ProductModal", product);
}