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();
    }
4

3 回答 3

1

使用方法ReditectToActionstring actionName, string controllerName, Object routeValues)

有关详细信息,请访问:http: //msdn.microsoft.com/en-us/library/dd460311 (v=vs.108).aspx

于 2013-10-17T08:59:36.623 回答
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 类型视图的更多信息,请访问:

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

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

于 2013-10-17T09:07:23.023 回答
0

为此,您将需要两个步骤

步骤1

制作一个模型(它更有效)在视图中使用它,通过提交表单的帖子将您的数据传递给控制器​​。

第2步

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

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

然后你可以在 post action 方法中接收数据并使用 ReturnRedirectToAction("ActionName", "ControllerName", "DataModelObject")传递给不同的控制器

于 2013-10-17T09:27:23.690 回答