Asp.net Mvc之Action如何传多个参数
发布日期:2021-11-15 03:27:16 浏览次数:7 分类:技术文章

本文共 1403 字,大约阅读时间需要 4 分钟。

最近,工作上有一个需要:用户查询日志文件信息,查看某一个具体日志信息,可能同时查看该日志所在日期的其他日志信息列表。

  为完成此功能,我打算在URL中传入了两个参数,一个记录此日志时间,另外一个记录日志的主键ID,因此,准备从Asp MVC的路由

入手。

  在Global.asax文件中,默认路由如下。

routes.MapRoute(                "Default", // 路由名称                "{controller}/{action}/{id}", // 带有参数的 URL                new { controller = "Logon", action = "Logon", id = UrlParameter.Optional } // 参数默认值            );

  这个路由中,在Action后面只能传入一个参数,不能传入多个参数,因此,需要增加路由信息。

  在Global文件中,新增了一个路由,路由名称为“Default1",代码如下

//第一种路由 传两个参数过去routes.MapRoute("Default1","{controller}/{action}/{Parma1}/{Parma2}",new { controller = "", action = "" },new { });

  上述路由,可以传入两个参数。

   在此,我们建一个TestController,添加一个Test.cshtml页面,在TestController写下代码,如下

public ActionResult Test(string date, string id){ViewData["date"] = date;ViewData["id"] = id;return View();}

  在Test.cshtml页面中写如下代码

要查询的日志时间为:@ViewData["date"]
要查询的日志ID为:@ViewData["id"]

  运行编译器,然后在浏览器中输入 ”http://localhost:11507/Test/Test/2013-12-18/5“,页面显示如下

    要查询的日志时间为:2013-12-18

    要查询的日志ID为:5

  现在又有一个问题来了,需要传入多个参数,怎么办呢?当然,只有新添加新的路由”Default2"。代码如下

//第二种路由 传多个参数,只是获得的第二个下划线后的所以数据routes.MapRoute("Default2","{controller}/{action}/{*id}",new { controller = "", action = "" });

  运行编译器,然后在浏览器中输入 ”http://localhost:11507/Test/Test/2013-12-18/5/xianrongbin“,页面显示如下

    要查询的日志时间为:

    要查询的日志ID为:2013-12-18/5/xianrongbin

  这里我们只能得到Action后面所有的参数,对此,我们可以解析出来,比如日志时间是 “2013-12-18",日志ID为”5“,日志操作者是”xianrongbin"。

  Ok,整个完成~~~~

转载地址:https://blog.csdn.net/qq_30469045/article/details/52812848 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:为什么要用存储过程
下一篇:c# 用字符串分割字符串

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月25日 06时54分45秒