我有片面的看法。它的模型是 Book 对象和 Customer 对象
我尝试使用带有以下内容的输入类型=提交按钮:
@using (Html.BeginForm("GetBooks", "Home", FormMethod.Post, new { id = "formId" }))
{
}
我可以让用户输入的值var values = $('#formId').serialize();
但是当点击按钮时,控制器不会被调用。
因此,我决定使用 jquery ajax() 方法,通过调用控制器并传入模型,它似乎工作正常。但是,它不会将更新的模型(使用用户条目更新)发送到控制器。
ajax 示例:
$.ajax({
url: "/Home/GetBooks",
data: JSON.stringify({ model: @Html.Raw(Json.Encode(Model)) }) ,
type: 'POST',
contentType: 'application/json',
beforeSend:function(){
$("#loading").show();
},
success: function(data) {
append(data)
},
error: function (e, textStatus, jqXHR) {
$("#loading").hide();
alert(e.statusText);
},
complete:function(){
$("#loading").hide();
}
});
在调用 Ajax 方法之前,我需要将用户输入的值重新分配给 Book Model,但我不确定如何执行此操作。我将 Book 和 Customer Model 都传递回控制器,如中所示
JSON.stringify({model: @Html.Raw(Json.Encode(Model))})
控制器:
[HttpPost]
public ActionResult GetBooks(ModelObjects model)
{
}
模型:
public class ModelObjects
{
public MVC4App.Models.Customer Customer{ get; set; }
public MVC4App.Models.Book Book{ get; set; }
}
public class Customer
{
public string FirstName{ get; set; }
public string LastName{ get; set; }
}
public class Book
{
public string Name{ get; set; }
}
视图中的模型参考:
@model MVC4App.Models.ModelObjects
提前致谢!