0

オール・オア・ナッシングの状況かどうか疑問に思っています。私がやりたいことは、通常の MVC 3 でページをロード (GET) することです。コントローラーはモデルを受け取り、それをビューに渡します。ビューと Razor でレンダリングします。ただし、ポストバックするときは、選択した情報をAJAX経由でポストバックしたいと思います。これは可能ですか?それとも、AJAX で GET と POST を実行する必要がありますか?

4

3 に答える 3

1

他の手段を使用してGETした後、AJAXを使用してPOSTすることは確かに可能です。

これは、まさにこれを行うSOに関するランダムな質問です。

マルチフォームビューを備えたMVC3のAjax投稿

GETアクションとPOSTアクションはまったく関連している必要はありません。

于 2012-07-23T17:22:11.373 に答える
1

以下のようなものを試してください。
コントローラーコード:

[HttpGet]
    public ActionResult WhateverActionName()
    {
        YourViewModel yvm = new YourViewModel();
        //Initalize viewmodel here
        Return view(yvm);
    }
[HttpPost]
public ActionResult WhateverActionName(YourViewModel yvm)
{
    if (ModelState.IsValid) {
        RedirectToAction("OtherAction", "OtherController")
    }
    return View(yvm);
}

アヤックス:

$.ajax({
    url: myurl
    // processData: false, // you may need this option depending on service setup
    success: function(){
        location.href = "TARGET LOCATION";
    },
    type: "POST"
});

ターゲットの場所の場合:次のURLが生成するURLを含む変数をajaxにフィードする必要があります

@URL.Action("Action", "Controller")
于 2012-07-23T17:25:56.207 に答える
0

http://knockoutmvc.comは、サーバー側のコードをクライアント側と統合する優れた方法を提供しており、目的を簡単に達成するのに役立つようです。

于 2012-07-23T17:29:33.977 に答える