如何将硬编码的List <object>从View传递给Controller

时间:2017-04-13 21:29:55

标签: asp.net-mvc list model

如何将一个硬编码的卡片组(卡片组)从View传递给Controller。我已经尝试了几种不同的东西来传递它,但有各种结果。我的索引是一个有52张牌的屏幕,你可以在那里绘制顶牌,我希望能够将它们洗牌,甚至可以在当前套牌中添加一个新牌组,并更新硬编码列表。

这是一些相关的代码。有什么建议吗?

编辑:formpost方法是我不确定的地方。我可以在Action中添加一个新的卡片列表,但是当我尝试在当前套牌中添加一个新套牌时,问题会再次出现。

public class Card
{

    public Suit Suit { get; set; }
    public Cardnumber Cardnumber { get; set; }

    public Card(Cardnumber c, Suit s)
    {
        this.Cardnumber = c;
        this.Suit = s;

    }

}

DeckOfCardsViewModel.cs

public class DeckOfCardsViewModel 
{
    public int ID { get; set; }
    public List<Card> Cards { get; set; }

}

HomeController.cs

    public ActionResult Index()
    {
        if (deck.Count < 1)
        {
            deck = new Deck().NewDeck();
            deckViewModel = new DeckOfCardsViewModel();
            deckViewModel.ID = 1;
            deckViewModel.Cards = deck;
            return View(deckViewModel);
        }

        else return View();

    }

    public ActionResult ShuffleDeck(DeckOfCardsViewModel shuffledDeck)
    {
        shuffledDeck.Cards = shuffledDeck.Cards.OrderBy(a => Guid.NewGuid()).ToList();
        deckViewModel = shuffledDeck;

        return View("Index",shuffledDeck);
    }

Index.cshtml

@model DeckOfCards.Models.DeckOfCardsViewModel



  @using (Html.BeginForm("ShuffleDeck", "Home", ****FormMethod.Post?***))
  {
    @Html.HiddenFor(Model => Model.Cards);
    @Html.HiddenFor(Model => Model.ID);

    <button class="btn btn-primary" name="TEST" type="submit" value="Submit">Shuffle</button>
  }

0 个答案:

没有答案