Asp.net Mvc之Action如何传多个参数
最近,工作上有一个需要:用户查询日志文件信息,查看某一个具体日志信息,可能同时查看该日志所在日期的其他日志信息列表。
为完成此功能,我打算在URL中传入了两个参数,一个记录此日志时间,另外一个记录日志的主键ID,因此,准备从Asp.net 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"]<br />
要查询的日志ID为:@ViewData["id"]<br />
运行编译器,然后在浏览器中输入 ”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,整个完成~~~~
Asp.net Mvc之Action如何传多个参数的更多相关文章
- 浅谈Asp.net Mvc之Action如何传多个参数的方法
最近,工作上有一个需要:用户查询日志文件信息,查看某一个具体日志信息,可能同时查看该日志所在日期的其他日志信息列表. 为完成此功能,我打算在URL中传入了两个参数,一个记录此日志时间,另外一个记录日志 ...
- 理解ASP.NET MVC Framework Action Filters
原文:http://www.cnblogs.com/darkdawn/archive/2009/03/13/1410477.html 本指南主要解释action filters,action filt ...
- MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器
MVC图片上传.浏览.删除 1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...
- C# MVC 用户登录状态判断 【C#】list 去重(转载) js 日期格式转换(转载) C#日期转换(转载) Nullable<System.DateTime>日期格式转换 (转载) Asp.Net MVC中Action跳转(转载)
C# MVC 用户登录状态判断 来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类Authenticati ...
- ASP.NET MVC+LayUI视频上传
前言: 前段时间在使用APS.NET MVC+LayUI做视频上传功能的时,发现当上传一些内存比较大的视频就会提示上传失败,后来通过查阅相关资料发现.NET MVC框架为考虑安全问题,在运行时对请求的 ...
- ASP.NET MVC – 关于Action返回结果类型的事儿(上)
原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一. ASP.NET MVC 1.0 Result 几何? Action的 ...
- 返璞归真 asp.net mvc (5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test
原文:返璞归真 asp.net mvc (5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test [索引页] [源码下载] 返璞归真 ...
- Asp.net mvc 大文件上传 断点续传
Asp.net mvc 大文件上传 断点续传 进度条 概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...
- windows server 证书的颁发与IIS证书的使用 Dapper入门使用,代替你的DbSQLhelper Asp.Net MVC中Action跳转(转载)
windows server 证书的颁发与IIS证书的使用 最近工作业务要是用服务器证书验证,在这里记录下一. 1.添加服务器角色 [证书服务] 2.一路下一步直到证书服务安装完成; 3.选择圈选 ...
随机推荐
- 【坑】tableView cell默认选中
在tableView展示的过程时候,如果想一开始就有一些cell默认被选中,不能在cellForRowAtIndexPath中cell.selected=YES, 必须在willDisplayCell ...
- sublime text 3 build 3143 安装详解
sublime text 3 build 3143 安装详解 环境:ubuntu 16 (x64) 0x00 下载 官网下载地址 下载的文件是个压缩包,笔者解压之后将整个sublime-t ...
- 【转】ubuntu 打开命令行窗口的方法
1. CTRL+ALT+T 2. ALT+F2调出Run a Command,输入gnome-terminal 3. 单击dash home这个按钮,输入te,就可以看到Terminal终端的选项了
- (转) VS2010 Addins 外接程序(插件)开发
http://www.cnblogs.com/Leo_wl/archive/2013/03/21/2973886.html VS2010 Addins 外接程序(插件)开发 阅读目录 VS2010 A ...
- Java调用C/C++实现的DLL动态库——JNI
由于项目的需要,最近研究了java 调用DLL的方法,将如何调用的写于此,便于日后查阅: 采用的方法是JNI:Java Native Interface,简称JNI,是Java平台的一部分,可用于让J ...
- “2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排
“2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排1.“提出表扬的同学:姜依萍,王雪玲,徐楠,相文君,赵晓未提交作业的同学:任红强,王瑞强,宗鹏新,扎西才让,布旦刀杰,范 ...
- opencv 对RGB图像直接二值化
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- centos6安装自带php
一.Centos 6安装自带PHP CentOS 默认仓库中包含了php套件,我们可以直接使用yum安装.下面是最小化安装,我们使用php-fpm来解析php. yum install -y php- ...
- npm run build
[npm run build] npm 会在项目的 package.json 文件中寻找 scripts 区域,其中包括npm test和npm start等命令. 其实npm test和npm st ...
- hello world讲解1
1. HelloWorld程序解析---------------------------------------------------------------------------------- ...