0

私はWPFアプリケーションを持っていました.ObservableCollectionを使用して、バインディングを使用してviewModelからビューを更新/変更/追加しました。

asp.net mvcを使用してWebアプリケーションを作成するための追加要件があります

asp.net mvc で ObservableCollection に代わるものはありますか?

もしそうなら、jquery と razor エンジン (asp.net mvc) の良い例を挙げてください。

4

2 に答える 2

2

いいえ、ありません。問題は、イベントは Web 開発ではその意味で使用されないということです。おそらく、監視可能なコレクションに最も近いのは、ajax を使用してサーバーから JSON のリストを要求し、そのデータをクライアント側でレンダリングすることです。ジェネリック、リフレクション、および JavaScript を巧みに使用することで、このコードをより動的なものにすることができます。

簡単な例:

コントローラ:

public JsonResult GetPersons()
{
      var list = new List<string> { "Jake", "Jenny", "Joe" };
      return Json(list, JsonRequestBehavior.AllowGet);
}

HTML:

<ul id='personlist'></ul>

Jクエリ:

    $.getJSON('@Url.Action("GetPersons", "MyController")',null,
            function (data) {
                // iterate each person from the requested data
                $.each(data, function (i, p) {
                     // render each person as li
                    $("#personlist").append('<li>'+p+'</li>');
                });
            });

別の、それほど動的ではない解決策は、ビューモデルを使用してビューを要求するだけで、その中に人のリストがあります。

public class PersonsViewModel
{
    public List<string> Persons { get; set; }

    public PersonsViewModel(List<string> persons)
    {
        Persons = persons;
    }
}

public ActionResult Persons()
{
      var list = new List<string> { "Jake", "Jenny", "Joe" };
      return View(new PersonsViewModel(list));
}

意見:

<ul>
    @foreach (var item in Model.Persons)
    {
      <li>@item.ToString()</li>
    }
</ul>

あなたがasp.net MVCの初心者で、イベントについて知っていることをすべて忘れることが私のヒントになる前にWPF/Winformsを行っていた場合。

于 2013-05-06T10:42:10.440 に答える