MVC3通过URL传值,一般情况下都会遇到【从客户端(&)中检测到有潜在危险的 Request.Path 值】的问题

这个问题的解决方法,我的其他博文已经有了说明,这里给出连接;【从客户端(&)中检测到有潜在危险的 Request.Path 值】解决方法

方法一:

Url传参是通过Get的方式,一般我们都是通过一定规则的Url来传参。比如下面的URL。

http://localhost/contorller/action/?Params1=a&Params2=b

注意:URL里面的“?”不能去掉哦,我曾经将URL路由和url参数混淆,就是上面的URL里面没有“?”,搞了2天时间才弄清楚问题出在哪里。大家可不要犯同样的错误哦。

我们可以在controller中通过绑定方法的方式来进行获取,代码如下:

[csharp] view plaincopy
  1. public ActionResult Index(ExpModel model, string Params1 , string Params2)
  2. {
  3. ViewBag.P1 = Params1 ;
  4. ViewBag.P2= Params2;
  5. return View();
  6. }

方法二:

修改MVC3中的路由规则

在Global.asax.cs中,修改路由规则

[csharp] view plaincopy
  1. routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  2. routes.MapRoute(
  3. "Default", // 路由名称
  4. "{controller}/{action}/{id}", // 带有参数的 URL
  5. new { controller = "Home", action = "Index", id = UrlParameter.Optional} // 参数默认值
  6. );

MapRoute方法在RouteCollectionExtensions里有6个重载版本!在这里我挑了一个参数最多的重载版本来进行介绍

public static Route MapRoute(
    this RouteCollection routes,
    string name,
    string url,
    Object defaults,
    Object constraints,
    string[] namespaces
)

name:路由在路由列表里的唯一名字(两次MapRoute时name不能重复)

url:路由匹配的url格式

defaults:路由url {占位符} 的默认值

constraints:url的 {占位符} 的约束

namespaces:这个是用于设置路由搜索的控制器命名空间!

比如,我们可以修改为下面的规则

[csharp] view plaincopy
  1. routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  2. routes.MapRoute(
  3. "Default", // 路由名称
  4. "{controller}/{action}/{uid}_{token}_{others}.html", // 带有参数的 URL
  5. new { controller = "Home", action = "Index", uid = UrlParameter.Optional, token = UrlParameter.Optional,others = UrlParameter.Optional} // 参数默认值
  6. );

如果访问的URL地址如:http://localhost/home/index/123_tokenvalue_othersvalue.html时

controller="Home", action="Index", uid=123, token=tokenvalue, others=othersvalue

获取和上面的方法一样。

关于Route 的详细用法和说明,大家看MSDN 上的资料吧,这里给个连接:

ASP.NET Routing:http://msdn.microsoft.com/en-us/library/cc668201.aspx?cs-save-lang=1&cs-lang=csharp

ASP.NET MVC3 通过Url传多个参数方法相关推荐

  1. url传参 获取参数方法

    url传参 获取参数方法 //调用const infos = this.getQuery(); //该方法返回一个对象 key 为所传参数名 value 参数值getQuery(key) {var s ...

  2. Asp.net MVC3.0 入门指南 6 审视编辑方法和视图

    审视编辑方法和视图 在这一节中,您将审视movie控制器生成的响应方法和视图.然后您将添加 一个自定义搜索页面. 运行程序并通过在URL追加/Moives浏览movie控制器.把鼠标悬停在Edit 链 ...

  3. 通过URL传参(参数也是URL)

    encodeURIComponent() 函数可把字符串作为 URI 组件进行编码. if ($("#pageType").val() == "treePage" ...

  4. ASP.Net MVC3 图片上传详解(form.js,bootstrap)

    图片上传的插件很多,但很多时候还是不能切合我们的需求,我这里给大家分享个我用一个form,file实现上传四张图片的小demo.完全是用jquery前后交互,没有用插件. 最终效果图如下: 玩过花田人 ...

  5. 工作377-处理url拼接里面的参数方法

    function GetRequest() {var url = location.search; //获取url中"?"符后的字串var theRequest = new Obj ...

  6. ASP.NET MVC3 上传头像图片并截图

    关于上传头像并且截图网上应该有很多资料,大多都是JQuery插件,用起来不是很方便 本文所介绍的方法将快速完成一个"上传头像图片并截图",只需要修改少量的代码 我们先来看看完成后的 ...

  7. Asp.Net MVC2.0 Url 路由入门---实例篇

    本篇主要讲述Routing组件的作用,以及举几个实例来学习Asp.Net MVC2.0 Url路由技术. 接着上一篇开始讲,我们在Global.asax中注册一条路由后,我们的请求是怎么转到相应的Vi ...

  8. 一起谈.NET技术,在ASP.NET MVC3 中利用JSONP跨域登录WEB系统

    在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复登陆.每次登录都需要输入用户名和密码.最近比较流行的就 ...

  9. 在 ASP.NET 中执行 URL 重写

    在 ASP.NET 中执行 URL 重写 发布日期: 8/23/2004 | 更新日期: 8/23/2004 Scott Mitchell 4GuysFromRolla.com 适用范围: Micro ...

最新文章

  1. 微信小程序学习笔记(三)
  2. webpack 打包编译优化之路
  3. 每小时的定时任务变成了每分钟
  4. mac系统及xcode使用的SVN客户端安装升级
  5. 火狐表格错乱兼容性问题
  6. 待办事项桌面插件_让浏览器重获整洁——标签页管理插件:OneTabOneTab PlusToby...
  7. html 复选按钮(input checkbox)
  8. deeplearning4j的学习
  9. PRML笔记:模式识别与机器学习
  10. Log4j和Slf4j的比较
  11. ASP.NET WEB API路由机制
  12. Matlab 2018a的安装步骤
  13. java如何把汉字转换成机内码_如何用java随机生成一个汉字?
  14. linux ata4 serror,linux – 如何将kern.log错误消息中的ataX.0标识符映射到实际的/ dev / sdY设备?...
  15. C语言实现倒计时关机程序(goto语句、strcpm函数、system函数)
  16. JCA Overview
  17. 开发板qt移植和交叉开发环境搭建学习笔记
  18. RuntimeError: CUDA error: no kernel image is available for execution on the device
  19. 关于使用C#WInform编程时两个窗口互操作的方法
  20. Android 消息队列

热门文章

  1. 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)
  2. Mac之初~10个快速上手技巧
  3. Puppet基础篇7-编写第一个完整测试模块puppet
  4. 支持IE,Firefox的日历控件
  5. 人家android博客地址
  6. 使用java concurrent处理异步加载图片功能
  7. SimpleUI 2.0 发布,采用element-ui+vue给django admin带来全新体验
  8. 【软工】第一次阅读作业
  9. redis缓存雪崩,缓存穿透,缓存击穿的解决方法
  10. Linux之深入理解anaconda使用