0

(post) アクションの MVC4 アプリケーションでは、エラーが発生した場合にint 型のリストをビューCreateに渡したいと考えています。そして、そこから ajax post で同じコントローラーの他のメソッドに渡します。だから、、、私を助けないでください。TempDataViewDataViewBag

public ActionResult Create(CreateModel model)
       {
             if(hasCustomError)
             {
                  List<int> selectedItems = new List<int>() { 1, 2, 8 }; //for example.
                  ViewBag.VB = selectedItems;

                  //ViewData["VD"] = selectedItems;
                  //TempData["TD"] = selectedItems;

                   return View(model);
             }

             return RedirectToAction("Index");
       }

の後、ビューに渡されたreturn View(model);リスト。ここでチェックした価値があります。しかし、ここから、そのリストをajax post 経由でメソッドに渡す必要があります。selectedItemsCreate.cshtmlGetTreeData

@{
   if (ViewBag.VB != null)
      {
          TempData["SelectedItems"] = ViewBag.VB as List<int>;
      }
}


    $("#myTree").jstree({
        json_data: {
            "ajax": {
                url: "@Url.Action("GetTreeData", "MyController")",
                type: "POST",
                dataType: "json",
                contentType: "application/json charset=utf-8"
            }
        },
        checkbox: {
            real_checkboxes: true,
            checked_parent_open: true
        },
        plugins: ["themes", "json_data", "ui", "checkbox"]
    });

MyControllerGetTreeData方法TempData["SelectedItems"]null.

 public string GetTreeData()
        {
           List<int> selecteds = null;
           if (TempData["SelectedItems"] != null)
            {
                selecteds = TempData["SelectedItems"] as List<int>;
                TempData["SelectedItems"] = null;
            }
            ......................................
        }

これをすべて(TempData、ViewData、およびViewBag)で試しました。何も変わっていません。

そのリストをアクションからビューに渡し、次にそのビューからメソッドに渡すにはどうすればよいでしょうか?

4

1 に答える 1

1

ビューモデルを作成し、そのビューモデルで現在使用しているモデルをフィールドとして設定し、そのリストに追加のフィールドを追加します

于 2013-07-25T06:34:17.723 に答える