【问题标题】:Post an MVC model with AJAX?使用 AJAX 发布 MVC 模型?
【发布时间】:2015-01-29 15:59:00
【问题描述】:

我可以使用 AJAX 发布 MVC 模型吗,例如:

 $.ajax ({
     //what elements are important?
     data: '@Model.Product',
     success: function(data){
        $("#divProducts").html(data);
     }
 }

我想避免将模型更改为 JSON 或 JavaScript 对象,因为我仍然需要从页面上的字段中加载它们。如果我使用标准的@Html.TextboxFor 填充模型字段然后使用 AJAX 发布整个模型会更容易。

【问题讨论】:

  • 是的。你当然可以。
  • @DanielA.White 我该怎么做?就像我列出的那样?
  • 那里有很多例子。
  • 你的问题不清楚。发回@Model 只会发回原始模型(有点毫无意义)。如果您的意思是回发您的表单值,那么您可以使用 jquery serialize() 方法
  • @StephenMuecke - 所以随着表单中的值或文本字段发生变化的模型不会反映在数据的 ajax 帖子中?

标签: javascript jquery asp.net-mvc-4


【解决方案1】:

您可以将模型序列化为 JSON,然后将序列化的 JSON 对象发布到服务器。

var productModel= @Html.Raw(Json.Encode(Model.Product))
$.ajax ({
     //send the serialized JSON 
     data: JSON.stringify(productModel),
     success: function(data){
        $("#divProducts").html(data);
     }
 }

【讨论】:

  • 那将毫无意义 - 它只是发回与最初发送到视图完全相同的值(未更改)。
【解决方案2】:

简单的答案是不使用 JSON.Encode 方法,而是简单地用值填充加载的模型,然后将 $.serializeArray() 与要加载模型的字段的类一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多