使用“路由表”url格式传递一系列值的正确方法是什么

时间:2013-04-12 00:41:46

标签: asp.net asp.net-mvc asp.net-mvc-4

我正在学习ASP.NET MVC,很容易将单个值传递给视图, 使用以下网址格式:

控制器/视图/的 ID

在控制器的代码中,我可以简单地定义整数id参数,如下所示:

ActionResult View(int? id)
{
}

但是,传递一系列值

的接受编程模式(在ASP.NET MVC中)是什么

控制器/视图/的 ID1-ID2

以及View方法(在代码隐藏中)会是什么样子?

2 个答案:

答案 0 :(得分:0)

<强> /控制器/索引VAR1 = 1&安培; VAR2 = 2及VAR3 = 3

ActionResult Index(int? var1, int? var2, int? var3)
{
    Return Content(
        String.Format("You entered: {0}, {1}, {2}", var1, var2, var3));
}

结果:

You entered: 1, 2, 3

<强> /控制器/索引值= 1&安培;δ值= 2及值= 3

ActionResult Index(IEnumerable<int> values)
{
    Return Content(
        String.Format("You entered: {0}, {1}, {2}", values[0], values[1], values[2]));
}

结果:

You entered: 1, 2, 3

我对代码隐藏没有任何经验,抱歉。我很好奇,你为什么要用它?

答案 1 :(得分:0)

首先是

controller/action/some-url-segment

视图只是具有视图结果的动作方法返回的表示逻辑,通常将视图传递给模型。

其次:ASP.NET MVC Views没有代码绑定文件,这不是Web表单。

服务器端的可能路由可以定义如下:

url: "{controller}/{action}/page-{pagenum}"

这会抓住任何网址,例如/admin/getuserlist/page-5

行动方法也会收到那些网址段参数。

ActionResult GetUserList(int pagenum)

以上从路径中定义的URL段获取ActionMethod参数值。

您还可以通过查询字符串传递此类值:

/Admin/getuserlist?page=3&pagesize=45

使用查询字符串传递值时,无需修改路由。

以及url: {controller}/{action}/

等路线

很乐意将该请求传递给:

ActionResult GetUserList(int page, int pagesize)