C# 什么';ASP.NET MVC中的“处理值”参数是什么?

C# 什么';ASP.NET MVC中的“处理值”参数是什么?,c#,asp.net-mvc,C#,Asp.net Mvc,我看到有Controller.RedirectToAction(string actionName、string controllerName、object values),但我从未让values参数起作用。考虑一下,我想在控制器中执行下列重载动作: public ActionResult Read() { return RedirectToAction("ReadPage", "MyController", 1); } public ActionResult ReadPage(in

我看到有
Controller.RedirectToAction(string actionName、string controllerName、object values)
,但我从未让values参数起作用。考虑一下,我想在控制器中执行下列重载动作:

public ActionResult Read() 
{
    return RedirectToAction("ReadPage", "MyController", 1);
}

public ActionResult ReadPage(int page)
{
    // Doing the actual stuff 
}
…当我尝试转到
Read
操作时,出现异常。
Html.ActionLink
也是如此

怎么回事?在MVC中,是否可以将值传递给控制器而不必进入浏览器?

尝试使用:

return RedirectToAction("ReadPage", "MyController", new {page = 1});
它需要知道你指的是哪个参数(在更一般的情况下,你可以有很多参数),它可以从上面推断

匿名类型模式(如上)在ASP.NET MVC中非常常见,尽管在许多情况下是如此 我相信你也可以给它一本字典来表达同样的意思

此外,在这种情况下,不需要采取两种行动;您可以设置路由以提供默认值;以下是我之前发布的一些信息:

    public ActionResult Search(string query, int startIndex, int pageSize)
    {
        ...
    }
路线:

    routes.MapRoute("Search", "Search/{query}/{startIndex}",
             new {
                controller = "Home", action = "Search",
                startIndex = 0, pageSize = 20
             });

现在,如果我不提供startIndex,默认情况下,它会将0传递给我的搜索。因此,我可以导航到“/Foo”进行默认搜索,或者导航到“/Foo/100”从100开始进行相同的搜索。或者,参数可以位于查询字符串上,并且仍然会使用anon类型中的值设置为默认值。

请注意我的更新,这里不需要两个方法。。。