若相依 发表于 2015-1-16 14:23:01

来一篇关于NET的在MVC中怎样猎取Request.QueryString中的参数值的办法

据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。明天在MVC中,试图用Request.QueryString["type"]取到URL中参数type的值,却发明怎样也取不值。细心反省我的路由设置:
publicstaticvoidRegisterRoutes(RouteCollectionroutes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
"Default",//路由称号
"{controller}/{action}/{id}/{type}",//带有参数的URL
new
{
controller="Home",
action="Index",
id=UrlParameter.Optional,
type=UrlParameter.Optional
}//参数默许值
);
}


虽然说有稍许的修改,但也没有毛病,URL也是能准确剖析。调试到程序中测试,发明不论怎样弄,Request.QueryString.Count老是即是0,也就是说,Request.QueryString中一向没有值,唉~溃散了。

经由一上午的勉力,终究是找到了成绩的办理办法,我们能够经由过程以下两种办法来猎取到URL中参数的值,但为何Request.QueryString取不到值的详细缘故原由不晓得,甚么情形下Request.QueryString才会有值等也不分明,Asp.MVC自己也没有穷究,只是想多懂得一些asp.net新手艺,以是也不盘算穷究。

上面间接讲怎样在MVC中取到URL参数值的两种办法吧:
1,该办法也是最复杂的办法:
经由过程Request.RequestContext.RouteData.Values["参数名"]来猎取。
自己料想,该办法是剖析前途由中的各参数的值吧,由于我在路由中有设置{controller}/{action}/{id}/{type},以是利用Request.RequestContext.RouteData.Values["type"],就可以取到url中type的值了。

自己的示例中取id与type参数值的办法以下:
privateintGetUrlID()
{
intID=0;
if(Request.RequestContext.RouteData.Values["id"]!=null)
{
int.TryParse(Request.RequestContext.RouteData.Values["id"].ToString(),outID);
}
returnID;
}

privatestringGetUrlType()
{
stringtype=string.Empty;
if(Request.RequestContext.RouteData.Values["type"]!=null)
{
type=Request.RequestContext.RouteData.Values["type"].ToString();
}
returntype;
}

经自己测试,是能一般取到值的。

2,在action办法中界说路由中对应的参数,如本比方,可以下界说action办法:

publicActionResultSupplierEdit(intID,stringType)
{
ViewData["ID"]=ID;
ViewData["Type"]=Type;
returnView();
}

如许,体系就会主动将ID与Type的值传到action办法中来的了,我们就能够在Views文件夹下的前台文件中利用ViewData["ID"]与ViewData["Type"]来取到url中ID,Type的值了。经测试,这个办法也是行的通的。固然,在前台文件中利用<%:Request.RequestContext.RouteData.Values["type"]%>一样能够取到值。

以上为自己取Request.QueryString值的两个小办法,由于本人对Asp.MVC懂得其实不太多,以是假如有毛病的中央,请人人在批评中斧正。另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。

飘灵儿 发表于 2015-1-25 18:19:04

CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。

若天明 发表于 2015-2-3 13:00:18

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

再见西城 发表于 2015-2-9 03:22:55

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。

老尸 发表于 2015-2-26 20:18:35

网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!

只想知道 发表于 2015-3-8 17:31:41

网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!

谁可相欹 发表于 2015-3-16 09:21:51

asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!

透明 发表于 2015-3-22 22:09:10

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
页: [1]
查看完整版本: 来一篇关于NET的在MVC中怎样猎取Request.QueryString中的参数值的办法