2013-10-17 65 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

相關問題