将数据/模型和路由参数传递给控制器

时间:2011-12-06 21:13:20

标签: c# asp.net asp.net-mvc-2

我有一个像这样的控制器:

public ActionResult Calculate(Rankings rank, int id)
{
//do something on rank depends of id
return View(rank);
}

我必须将“等级”和“ID”从“计算”传递给控制器​​,处理数据取决于ID并返回到具有更新模型“等级”的同一视图? Calculate View是一个带有排名的强类型视图(排名模型)。

我将非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以简单地将ID存储在Rankings对象中,也可以创建一个包含Rankings和id属性的新viewmodel对象。

我倾向于选择viewmodel对象来存储视图需要完成其工作的所有内容。换句话说,一个包含Rankings和id的对象。

看起来像这样:

public class CalculateViewModel
{
    public Rankings Rankings { get; set; }
    public int Id { get; set; }
}

在控制器中创建它,设置属性,并将其传递给Calculate视图。

最简单的方法(我不会这样做)就是在控制器中使用ViewData,如下所示:

ViewData["id"] = id;