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

本文关键字:参数传递 控制器 路由 数据 模型 | 更新日期: 2023-09-27 18:17:03

我有这样一个控制器:

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

我必须通过'rank'和'id'从视图'计算'到控制器,对数据的工作取决于id和返回到这个相同的视图与更新的模型'rank'?计算视图是一个强类型的视图与排名(排名模型)。

我很感激你的帮助。

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

您可以简单地将id存储在Rankings对象中,或者创建一个包含Rankings和id属性的新视图模型对象吗?

我倾向于选择存储视图工作所需的所有内容的视图模型对象。换句话说,一个对象包含了排名和id。

就像这样:

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

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

最简单的方法(这是我不会做的)是在你的控制器中使用ViewData,像这样:

ViewData["id"] = id;