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

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

方法一:

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

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

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

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

public ActionResult Index(ExpModel model, string Params1 , string Params2)
{
ViewBag.P1 = Params1 ;
ViewBag.P2= Params2;
return View();
}

方法二:

修改MVC3中的路由规则

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

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

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:这个是用于设置路由搜索的控制器命名空间!

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

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{uid}_{token}_{others}.html", // 带有参数的 URL
new { controller = "Home", action = "Index", uid = UrlParameter.Optional, token = UrlParameter.Optional,others = UrlParameter.Optional} // 参数默认值
);

如果访问的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传多个参数方法

    MVC3通过URL传值,一般情况下都会遇到[从客户端(&)中检测到有潜在危险的 Request.Path 值]的问题 这个问题的解决方法,我的其他博文已经有了说明,这里给出连接[从客户端(&a ...

  2. ASP.NET MVC3 局部页面@RENDERBODY @RENDERPAGE@RENDERSECTION使用方法详细说明

    转载自:http://blog.163.com/wenchangqing_live/blog/static/173722309201211299817278/ asp.net mvc3局部页面使用方法 ...

  3. 利用url传多个参数

    刚开始接触jsp,比较偏向于用button标签的onclick方法进行页面的跳转.但是关于页面跳转的各种问题真是叫人头大,以下记录,仅仅为自己以后查看. Qone 用url传参的时候遇到中文怎么办 编 ...

  4. MVC中URL传多个参数

    1.mvc中url传递多个参数不能直接使用&,会报错(从客户端(&)中检测到有潜在危险的 Request.Path 值) 方法①:使用?---/Home/Index/?id=xxx&a ...

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

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

  6. uploadify加ASP.NET MVC3.0上传文件(可多条)

    页面代码: <div id="fileQueuePlug"></div> <input type="file" name=&quo ...

  7. js url传参,参数加密

    前台 function encode64(input) { var output = ""; var base = new Base64(); var output = base. ...

  8. js获得url传过来的参数

     function  getParam(url) {                  var arr = url.split('?');   //取?以后                 var a ...

  9. js取url问号后的参数方法封装

    工具方法: function getRequest() { var url = location.search; // 获取url中?后面的字符串 var theRequest = new Objec ...

随机推荐

  1. JavaBean中的get/set 的命名规范

      最近的struts项目中遇到了这样的问题: 我的action中全局变量明明有getset方法,而且是自动生成的,但是在使用的时候,总是说找不到这个属性的getset方法,取不到从jsp传来 的值, ...

  2. Google Code Jam 2010 Round 1B Problem A. File Fix-it

    https://code.google.com/codejam/contest/635101/dashboard#s=p0   Problem On Unix computers, data is s ...

  3. JavaScript验证正则表达式大全

    JavaScript验证正则表达式大全,搜集最全的JavaScript验证正则表达式,开始查看吧,这里的都是正则表达式的例子,具体和函数结合的使用方法,还请查看下篇文章<JavaScript使用 ...

  4. ArcEngine开发:IElement.Geometry 值不在预期范围内 + 元素绘制代码

    IElement pEle = pLineEle as IElement; pEle.Geometry = pLn; pLn为一个ILine对象,想当然的以为它是IGeometry对象,可以赋值,结果 ...

  5. hdu Inverting Cups

    这题需要分类讨论: 第一种情况: n为奇数m为偶数的情况无解,因为m为偶数,每次翻转将把从正面翻到反面的个数x减去从反面翻到正面的个数y,得到的数必定为偶数.因为x+y为偶数,x-y也为偶数.而总个数 ...

  6. eval(gzinflate(base64_decode N层,自动解密

    <?php header("Content-type: text/html; charset=utf-8"); $decode = 'DZdFEsRWEkT3vojt0EJM ...

  7. IOS第四天(4:下一题和选框的实现)

    #import "HMViewController.h" #import "HMQuestion.h" #define kButtonWidth 35 #def ...

  8. replication set复制集

    replication set复制集  介绍 replicattion set 多台服务器维护相同的数据副本,提高服务器的可用性,总结下来有以下好处: 数据备份与恢复 读写分离 MongoDB 复制集 ...

  9. navicat从下载到使用

    ☆准备工作 确保电脑安装了mysql数据库 确定my.ini下的字符集设置为utf8 ☆下载navicat 输入网址 https://www.navicat.com 点击Downloads 点击Dow ...

  10. FTP协议详解(转)

    FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application ...