我正在迈出mvc的第一步,我需要帮助。 我将数据从视图传递到此控制器,我需要将所选项目与详细信息传递到不同的视图(这是用户添加其电子邮件详细信息的表单),我无法弄清楚如何。 这就是我从提交的表单中获取控制器的详细信息
public ActionResult list()
{
var AllItems = db.menu.ToList();
Mapper.CreateMap<Menu, SelectableMenu>();
return View(AllItems.Select(m => new SelectableMenu { price = m.price, MenuId = m.MenuId, Name = m.Name })
.ToList());
}
[HttpPost]
public ActionResult List(IEnumerable<SelectableMenu> item)
{
var userSelectedMenu = item.Where(m => m.IsSelected).Select(m => m.Name + m.price + m.MenuId);
if (userSelectedMenu != null && userSelectedMenu.Any())
{
return View("bla");
}
return View();
}
答案 0 :(得分:1)
使用方法ReditectToActionstring actionName, string controllerName, Object routeValues)
有关详细信息,请访问:http://msdn.microsoft.com/en-us/library/dd460311(v=vs.108).aspx
答案 1 :(得分:0)
您可以使用return View("ViewName",model)
例如:
[HttpPost]
public ActionResult List(IEnumerable<SelectableMenu> item)
{
var userSelectedMenu = item.Where(m => m.IsSelected).Select(m => m.Name + m.price + m.MenuId);
if (userSelectedMenu != null && userSelectedMenu.Any())
{
return View("YourDiffrentViewName",userSelectedMenu); // This will pass your model to your Different view
}
return View();
}
然后在新视图中,您必须使用您的模型强力输入它。
例如:
您的观点如下:
@model ProjectName.models.YourClassName //Your class/model namespace
@using(Html.BeginForm())
{
@Html.TextBoxFor(m => Model.Property) //This will create textbox for your property
<input type="submit" value="Submit" />
}
有关stronly类型视图的更多信息,请访问:
答案 2 :(得分:0)
你需要两步才能获得这个
第1步
制作模型(更有效)在视图中使用它以通过提交表单的帖子将数据传递给控制器。
第2步
将数据接收到控制器方法然后使用
控制器操作中的return View("yourNewpage","yourdatamodelobject");
,用于在另一个页面的操作结果视图中传递数据。
或者,如果视图位于另一个控制器
中然后你可以在post action方法中接收数据并使用Return RedirectToAction("ActionName", "ControllerName", "DataModelObject")
传递给不同的控制器