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

C# 将数据/模型和路由参数传递给控制器,c#,asp.net,asp.net-mvc-2,C#,Asp.net,Asp.net Mvc 2,我有一个这样的控制器: public ActionResult Calculate(Rankings rank, int id) { //do something on rank depends of id return View(rank); } public class CalculateViewModel { public Rankings Rankings { get; set; } public int Id { get; set; } } 我必须将视图“Calcu

我有一个这样的控制器:

public ActionResult Calculate(Rankings rank, int id)
{
//do something on rank depends of id
return View(rank);
}
public class CalculateViewModel
{
    public Rankings Rankings { get; set; }
    public int Id { get; set; }
}
我必须将视图“Calculate”中的“rank”和“id”传递给控制器,根据id处理数据,并使用更新的模型“rank”返回到同一视图? Calculate视图是具有排名模型的强类型视图


非常感谢您的帮助。

您可以将id存储在Rankings对象中,或者创建一个新的viewmodel对象,该对象包含Rankings和id的属性

我倾向于使用viewmodel对象来存储视图工作所需的所有内容。换句话说,一个包含排名和id的对象

看起来是这样的:

public ActionResult Calculate(Rankings rank, int id)
{
//do something on rank depends of id
return View(rank);
}
public class CalculateViewModel
{
    public Rankings Rankings { get; set; }
    public int Id { get; set; }
}
在控制器中创建它,设置属性,并将其传递给“计算”视图

我不会采用的最简单方法是在控制器中使用ViewData,如下所示:

ViewData["id"] = id;