57

私はこれがここではかなり基本的な質問であることを知っています.

しかし、利用可能なすべてのオプション、Razor View からコントロール アクション メソッド [通常はサーバー側ルーチン] を
呼び出すこと、および それぞれがどのシナリオで使用するのに最も適しているかを教えていただけます か。

ありがとう。

4

1 に答える 1

97

方法 1 : jQuery Ajax Get 呼び出し (部分ページ更新) を使用します。

データベースから jSon データを取得する必要がある場合に適しています。

コントローラのアクション メソッド

[HttpGet]
public ActionResult Foo(string id)
{
    var person = Something.GetPersonByID(id);
    return Json(person, JsonRequestBehavior.AllowGet);
}

JクエリGET

function getPerson(id) {
    $.ajax({
        url: '@Url.Action("Foo", "SomeController")',
        type: 'GET',
        dataType: 'json',
        // we set cache: false because GET requests are often cached by browsers
        // IE is particularly aggressive in that respect
        cache: false,
        data: { id: id },
        success: function(person) {
            $('#FirstName').val(person.FirstName);
            $('#LastName').val(person.LastName);
        }
    });
}

人物クラス

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

方法 2 : jQuery Ajax Post 呼び出し (部分ページ更新) を使用します。

ページの一部をデータベースに投稿する必要がある場合に適しています。

Post メソッドも上記と同じ で、jquery メソッドの[HttpPost]ように Action メソッドと type を置き換えるだけです。post

詳細については、こちらの MVC コントローラーへの JSON データの投稿を確認してください。

方法 3 :フォーム ポスト シナリオとして (フル ページ更新)。

データベースにデータを保存または更新する必要がある場合に適しています。

意見

@using (Html.BeginForm("SaveData","ControllerName", FormMethod.Post))
{        
    @Html.TextBoxFor(model => m.Text)
    
    <input type="submit" value="Save" />
}

アクション方法

[HttpPost]
public ActionResult SaveData(FormCollection form)
    {
        // Get movie to update
        return View();
   }

方法 4 : Form Get シナリオとして (フル ページ更新)。

データベースからデータを取得する必要がある場合に適しています

Get メソッドも上記と同じ [HttpGet]で、Action メソッドとFormMethod.GetView のフォーム メソッドを置き換えるだけです。

これがお役に立てば幸いです。

于 2012-12-27T06:02:40.477 に答える