我正在尝试找出一种方法,使用 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 填充方法。
关于c# - 如何在 MVC 中使用 Javascript/AJAX 将整个对象传递给 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038216/