0

私を助けてくれたみんなの努力に感謝します。基本的に、私は以下のコントローラーで問題に直面しています。単純で簡単にしてください:

   Controller C{

       public list<model> a;
       //used in action A, if it's a searched list, then don't initialize;
       public bool searched = false;


       public ActionResult A(){
          if(searched){
             ViewBag.a = a;
          }else
          //initial the list
          a = db.model.where();
          .....
          return view()
       }

       //return a result list when people search by keywords
       public ActionResult B(string str){
          a = db.model.where(d=> d.id = str);
          search = true;
       }

    }

しかし、B が呼び出された後、a と researched の両方の値が変化しないことが判明しました。

.NET MVC に関する重要な知識を見逃していませんか?

関連記事は大歓迎です

ありがとう

4

4 に答える 4

4

TempDataリダイレクト後に値を保持するために使用する必要があります。それはまさにTempDataが設計されたものです。あなたの例では、次のようになります。

Controller C{

       public ActionResult A(){
          TempData["str"] = "this is A";
          return RedirectToActionB()
       }
       public ActionResult B(){
          TempData["str"] += "This is B";
          return View()
       }

    }
于 2013-07-17T16:21:55.543 に答える