2013-10-17 69 views
0

我正在做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

可以使用返回不同的看法​​

例如:

[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类型的视图访问:

  1. http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/strongly-typed-views-in-mvc/

  2. http://www.howmvcworks.net/OnViews/BuildingAStronglyTypedView

+0

返回查看(“XYZ”, userSelectedMenu); @ model IList @foreach(Model中的var项) { @ item.Name }错误:传入字典的模型项的类型为'System.Linq.Enumerable + WhereSelectListIterator'2 [lamb.Models.SelectableMenu,System.String]',但这个字典需要一个'System.Collections.Generic.IList'1 [lamb.Models.SelectableMenu]'类型的模型项。 – user2889507

+0

查看我的更新回答.. –

+0

问题是我需要检查最后一个窗体中的选定数据,然后再添加几个字段 – user2889507

0

您需要twosteps这个

步骤1

做一个模型(更有效)在视图中使用它来传递您的数据通过后在提交表单到控制器。

步骤2

接收数据到控制器的方法,然后使用
return View("yourNewpage","yourdatamodelobject");在控制器操作来传递在另一页的动作结果视图的数据。

或者,如果视图是在另一个控制器

那么你就可以在后操作方法在这里接收数据,并使用返回RedirectToAction("ActionName", "ControllerName", "DataModelObject")传递到不同势控制器

+0

正如我所说我正在做我的mvc的第一步,所以它看起来很有希望,但我需要更多的细节 (我所做的是垃圾) – user2889507

相关问题