jsonをコントローラアクションにポストするときに[fromJson]属性を使用したMVC2の古い例を使用していましたが、ModelStateなどのモデルエラーを捕捉しなかった点以外はうまくいきました。 IsValidは常にtrueです。 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);
}
});
をので、私はjQueryの$アヤックスに私のko.utils.postJsonを移動すると思いますが、どのように私はちょうどので、私はその後RedirectToActionを行うことができます投稿できますか?
ko.utils.postJsonが「通常」の形式提出しているので、私はノックアウトフォーラムでこのhttp://groups.google.com/group/knockoutjs/browse_thread/thread/e631a544de2ad51eを発見した
public ActionResult Create(QuestionViewModel questionViewModel){
if (ModelState.IsValid)
{
questionViewModel.Save();
TempData.Add(Config.MODEL, questionViewModel);
return RedirectToAction("Edit");
}
PopulateViewBag();
return View(questionViewModel);
}
:コントローラのアクションは、次のようになります。これは私がやりたいことなので、アプリケーションの流れは変わりません。
あなたの意向は何ですか? ajax呼び出しを実際のAjax呼び出しの応答を返す新しいURLにリダイレクトするか、ブラウザの現在のページ全体を別のURL(リフレッシュ)にリダイレクトしますか? – Zasz
私は上記を明確にしようとしました。 – rafn