0

私はMVC4Web開発に関しては初心者であり、苦労していることがあります。

基本的に、私は次のものを持っています:

public class maincontroller: Controller
{
    private MyRepository myRepository;

    public mainController()
    {
         myRepository= new MyRepository(); 
    }

    public ActionResult Index()
    {
        var mystuff = myRepository.GetPrograms();            
        return View(mystuff);
    }


    public ActionResult MyStuff()
    {
        var mystuff = myRepository.GetStuff(1);
        return Json(mystuff , JsonRequestBehavior.AllowGet);
    }
}

`MyRepository'クラスに2つの関数があると仮定します。

`mystuff'を設定しているもの:

 public MyRepository()
    {


        for (int i = 0; i < 8; i++)
        {
            programs.Add(new MyStuff
            {
                Title = "Hello" + i,
                content = "Hi"

            });
        }
    }


and second function that gets Stuff:
public List<MyStuff> GetStuff(int pageNumber = 0)
    {
        return stuff
            .Skip(pageNumber * pageCount)
            .Take(pageCount).ToList();
    }

すべてうまくいきます。つまり、「もの」を繰り返し処理して、ビューに表示することができます...

問題は、MyStuff()AJAXを使用して(Jsonを返す)表示してから、すべてstuffをビューに追加したいということです。それ、どうやったら出来るの?

壁に頭をぶつけて約4時間経ちましたが、うまくいきません。

どんな助けでも大歓迎です。

ありがとうございました。

4

1 に答える 1

0

最も簡単なレベルでは、次のようなものを使用してドキュメントに HTML を追加するだけです (JQuery を使用していると仮定すると、はるかに簡単なためです)。

<div id="container"></div>

// make AJAX call to "MyStuff" action in the current controller
$.get(@Url.Action("MyStuff", function(data) {

    // cycle through each item in the response
    $.each(data, function(index, item) {

        // construct some HTML from the JSON representation of MyStuff
        var html = "<div>" + item.StuffProperty + "</div>";

        // append the HTML to a container in the current document
        $("#container").append(html);
    });
});

これにより、コレクション内の各アイテムの HTML が、クラスStuffPropertyから(たとえば) を使用してコンテナー要素に追加されます。MyStuff


このように手動で HTML を追加するのは、複雑になりすぎると面倒になる可能性があります。その時点で、次のいずれかを使用することを検討する必要があります。

  1. 部分ビュー (JSON ではなく、コントローラーから HTML を直接返す)
  2. JSON を HTML に変換するための、Mustache.js、Underscore.js などのクライアント側テンプレート エンジン。
于 2012-12-02T01:08:43.537 に答える