使用 ASP.NET MVC 显示 FormCollection

发布于 2024-11-06 08:28:03 字数 566 浏览 0 评论 0原文

我有一个在视图上使用 Html.BeginForm() 的表单。我在控制器中有一个 ActionResult 来处理该帖子。我需要的只是将结果返回到视图中。我可以启动新视图,但我不知道如何将数据传递给它,并且一旦到达那里我不知道如何显示它。这是我在 ActionResult 中的内容。

[HttpPost]
        public ActionResult Index(FormCollection collection)
        {


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

如果我只是执行 return View("OrderConfirmation");它将进入视图,所以我知道我已经成功了。我只是不知道如何传递数据。现在我将它强类型化为与表单相同的模型,这会导致错误,因为这个 FormCollection 显然不一样。如果我删除强类型行,上面的代码就可以工作,但我不知道如何在此时循环遍历集合。

感谢您的帮助。

I have a form using Html.BeginForm() on a view. I have in the controller an ActionResult to handle the post. What I need is to just kick back the results to a view. I can kick off the new view, but I don't know how to pass the data to it and once there I don't know how to display it. Here's what I have in the ActionResult.

[HttpPost]
        public ActionResult Index(FormCollection collection)
        {


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

If I just do a return View("OrderConfirmation"); it will go to the view so I know I got that working. I just don't know how to pass the data. Right now I have it strongly typed to the same model the form was which causes errors because this FormCollection is not the same obviously. If I remove the strongly typed line the above works, but I have no idea how to loop through the collection at that point.

Thanks for the help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

探春 2024-11-13 08:28:03

使用 ViewModel 和强类型视图。然后您可以将模型传递到第二个视图。

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

ASP.NET MVC 将自动创建一个订单实例并填充发布的 FormCollection 中的属性。

Use a ViewModel and a stongly typed view. Then you can pass the model to the second view.

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

ASP.NET MVC will automatically create an order instance and fill the properties from the posted FormCollection.

っ左 2024-11-13 08:28:03

首先不要使用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

First don't use FormsCollection, its too generic. You only need it if you need to unit test and access UpdateModel().

Bind to a model type or bind to params:

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

or

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

in your view at the top specify

@model MyAppNameSpace.ViewModels.SomeModel
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文