我有一個局部視圖。它的型號是一本書的對象和客戶對象HTML.BeginForm不會調用控制器asp.net MVC 4
我試圖用一個輸入類型=用下面的提交按鈕:
@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();
}
});
我需要重新分配用戶輸入的值到Book模型之前我叫Ajax的方法,但是我不確定如何做到這一點。我傳遞這兩個圖書和用戶模型回控制器作爲
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
謝謝 提前!
這仍然不能解釋爲什麼輸入按鈕不起作用,但爲此,您需要用視圖和控制器操作中使用的模型來更新問題。 – 2013-05-13 18:26:13
是的,我有:var values = $('#formId')。serialize();有沒有一種方法可以在Jquery中使用它來更新模型,其效果如下:@Model.Customer = values; 這樣,當我發送:JSON.stringify({model:@ Html.Raw(Json.Encode(Model))}),它將被更新爲正確的值。 – alpha 2013-05-13 18:47:25
@alpha,我已經更新了答案,因此它更好地解釋了要做什麼。 – 2013-05-13 18:53:20