2017-11-23 14 views
0

こんにちは、私は1つのアクションメソッドでリストに項目を追加できますが、リストを別のメソッドのビューに渡すたびにリストは空白に見えます。なぜこれがあり、誰かがこれを説明できるのだろうか?以前に別の方法で何かが追加されていると、リストが空白になるのはなぜですか?MVCコントローラのアクションでList <>にアイテムを保存できないのはなぜですか?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using Microsoft.AspNetCore.Mvc; 
using Hotel.Models; 
using System.Diagnostics; 

namespace HotelTwee.Controllers 
{ 
    public class HomeController : Controller 
    { 

     public List<Hotel> preOrders = new List<Hotel>(); 


     public IActionResult Index() 
     {  
      // List Count is ZERO here 
      return View(preOrders); 
     } 


     [HttpGet] 
     public IActionResult Create() 
     { 
      return View(); 
     } 

     [HttpPost] 
     public IActionResult Create(Hotel order) 
     { 
      preOrders.Add(order); 
      // List COUNT is ONE here 
      return RedirectToAction("Index", preOrders);    
     } 
    } 
} 

EDIT:

RedirectToActionを取り外して固定している(、予約購入を "インデックス")

+1

お使いのコントローラが要求ごとにインスタンス化され、それがどのような状態を保持しません。 –

+0

しかし、私は自分のエクササイズのためにリストを使用しなければならない。この場合、データベースの代わりにリストを使用するにはどうしたらいいですか? –

+0

データを永続媒体(例:データベース)に保存し、索引アクションで再度読み取る。 – Shyju

答えて

0

RedirectToActionブラウザを引き起こすブラウザにHTTP 302応答を返す問題を返すビューを使用して指定されたアクションに対するGETリクエストを作成します。

コントローラ/ビューの状態は消えています。

また、RedirectToActionの2番目のパラメータは、routeValuesを対象としています。

https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction(v=vs.118).aspx

+0

RTAを削除しました。ありがとうございました! –

関連する問題