Отображение FormCollection с ASP.NET MVC - PullRequest
0 голосов
/ 11 мая 2011

У меня есть форма, использующая Html.BeginForm () для представления.У меня в контроллере есть ActionResult для обработки поста.Что мне нужно, это просто отбросить результаты в представление.Я могу запустить новое представление, но я не знаю, как передать данные в него, и, находясь там, я не знаю, как его отобразить.Вот что у меня есть в ActionResult.

[HttpPost]
        public ActionResult Index(FormCollection collection)
        {


            ViewBag.Title = "Confirm your order";
            return View("OrderConfirmation", collection);
        }

Если я просто сделаю возвратное представление ("OrderConfirmation");это пойдет на просмотр, так что я знаю, что я получил это работает.Я просто не знаю, как передать данные.Прямо сейчас я строго ввел его в ту же модель, форма которой вызывала ошибки, потому что эта FormCollection, очевидно, не то же самое.Если я удаляю строго типизированную строку, вышеприведенное сработает, но я не представляю, как в этот момент просмотреть коллекцию.

Спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

Во-первых, не используйте FormsCollection, он слишком общий. Он нужен только вам, если вам нужно выполнить модульное тестирование и получить доступ к UpdateModel ().

Привязка к типу модели или привязка к параметрам:

public ActionResult Index(SomeModel model)
{
  return View("OrderConfirmation", model);
}

или

public ActionResult Index(int key)
{
   SomeModel model = new SomeModel();
   UpdateModel(model);
  return View("OrderConfirmation", model);
}

по вашему мнению вверху укажите

@model MyAppNameSpace.ViewModels.SomeModel
2 голосов
/ 11 мая 2011

Используйте ViewModel и строго типизированное представление.Затем вы можете передать модель во второе представление.

public ActionResult Index(Order order)
{
  return View("OrderConfirmation", order);
}

ASP.NET MVC автоматически создаст экземпляр заказа и заполнит свойства из опубликованной формы FormCollection.

...