我正在使用MVC2的一些舊例子,在將json發佈到控制器動作時使用了[fromJson]屬性,它工作正常,但它沒有捕獲模型錯誤,因此ModelState。 IsValid總是如此。然後我看到發佈的JSON被構建到MVC3中,所以我升級了我的代碼。但現在我有另一個問題:)使用:Knockout和ko.utils.postJson問題
ko.utils.postJson(location.href, json);
綁定不起作用,我的模型是空的。
但如果使用jQuery:
$.ajax({
url: '@Url.Action("Create")',
contentType: 'application/json; charset=utf-8',
type: "POST",
data: json,
dataType: 'json',
success: function(result) {
alert("yay");
},
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.statusText + " " + xhr.responseText);
}
});
所以我想我會用我ko.utils.postJson移動到JQuery的$阿賈克斯但我怎麼剛剛交的,所以我可以以後做一個RedirectToAction?
所以澄清!控制器動作看起來是這樣的:
public ActionResult Create(QuestionViewModel questionViewModel){
if (ModelState.IsValid)
{
questionViewModel.Save();
TempData.Add(Config.MODEL, questionViewModel);
return RedirectToAction("Edit");
}
PopulateViewBag();
return View(questionViewModel);
}
我發現這個http://groups.google.com/group/knockoutjs/browse_thread/thread/e631a544de2ad51e在淘汰賽論壇,以便ko.utils.postJson是一個「正常」的形式提交。這是我想要做的,所以應用程序的流程保持不變。
你的意圖是什麼?您是否希望將ajax調用重定向到一個新的URL,該URL返回ajax調用的實際響應,或者,您希望瀏覽器中的當前整個頁面是否被重定向到另一個url(刷新)? – Zasz
我試圖澄清以上。 – rafn