将路由值从操作传递到视图

本文关键字:视图 操作 路由 | 更新日期: 2023-09-27 18:06:54

下面是我的操作代码,它接收一个参数(int id)。

public virtual ActionResult Index(int id)
{
    // Logic
    return View("List", id);
}

我的URL是这样的:Home/List/1

我知道我可以返回视图("列表"),但不知道如何添加它,请帮助我。

将路由值从操作传递到视图

你可以使用Controller之类的东西。RedirectToAction方法

return RedirectToAction("List", new { Id = id});

在你的控制器逻辑中,你最有可能想要取id参数来获取一些数据/做一些处理,然后返回一个模型到你的视图。

请查看这个链接,以获得一些关于MVC的优秀教程。

如果你只是想把ID从路由传递给视图,你可以使用ViewBag或者让你的视图接受一个int模型,然后你可以像

这样传递
return View("List", id);
return RedirectToAction("List", new { id =  Id }) 

如果你使用这样的路由

    //products
routes.MapLocalizedRoute("Product","s/{storeid}/{storename}/p/{productId}/{SeName}",
    new { controller = "Catalog", action = "Product", SeName = UrlParameter.Optional },
    new { productId = @"'d+", storeId = @"'d+" }, 
    new[] { "Nop.Web.Controllers" });

则可以这样使用

return RedirectToRoute("Product",new { storeid=123, storename="name",productId=23,SeName="something"});