Skip to main content
 首页 » 编程设计

c#之如何在 MVC 中使用 Javascript/AJAX 将整个对象传递给 Controller

2024年01月21日38jirigala

我正在尝试找出一种方法,使用 Javascript/AJAX 将整个类从我的 View 传递到 Controller 。

我知道以下 Ajax 代码可用于仅传递 ID,但我可以传递整个模型吗?

    @model  User 
    $.ajax( 
        { 
            type: "POST", 
            url: "\User\", 
            data: @model.id, 
            success: 
                reloadPage() 
        }); 

搜索时看到如下解决方案: Is there a way to pass a "C#" object to a controller via AJAX?

我可以简单地这样做吗? :

    @model  User 
    $.ajax( 
        { 
            type: "POST", 
            url: "\User\", 
            data: @model, 
            success: 
                reloadPage() 
        }); 

这行得通吗?有多安全?什么是最好的方法?

请您参考如下方法:

查看 JavascriptSerializer.Serialize()方法。所以像这样:

@model  User 
$.ajax({ 
    type: "POST", 
    url: "\User\", 
    data: JSON.parse(@(new JavascriptSerializer().Serialize(Model))), 
    success: reloadPage 
}); 

本质上,这会将您的模型序列化为 JSON 字符串,然后在客户端将其解析回 JS 对象,然后将其传递到 AJAX 请求中。当请求到达服务器时,MVC 模型绑定(bind)处理基于 JSON 对象构建模型的实例。

请注意,旧版本的 IE 不支持 JSON.parse。你可以获得json2.js为 IE 填充方法。