马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
据说很厉害,甚至可以把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办法:
[HttpGet]
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懂得其实不太多,以是假如有毛病的中央,请人人在批评中斧正。另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。 |