ASP.NET MVC中这个URL该怎么设置路由

比如说,我需要匹配一个URL为:http://www.abc.com/archive/demo.html对应的controller为Archive,action为Inde... 比如说,我需要匹配一个URL为:
http://www.abc.com/archive/demo.html
对应的controller为Archive,action为Index,“demo”为参数值,那么我这样写
routes.MapRoute(
"aa",
"archive/{url}.html",
new { controller="Archive",action="Index",url=UrlParameter.Optional}
);
是否可以,然后在controller中Index方法中怎么获得这个参数呢?
-----------------------------------------------------------------------------------
PS:如果我要传递多个参数呢,例如http://www.abc.com/{id}/{date}
-----------------------------------------------------------------------------------
展开
 我来答
xh7530215
2012-01-08 · 超过18用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:44.7万
展开全部
routes.MapRoute(
"aa",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
你还没有理解mvc路由的意义,你配置的路由本身就有问题。你如果不对路径做特殊处理,只是想获取参数,那你可以不用去配置路由。就像上面一样。我就拿你的参数“Id,Date”来说。不用重新配置路由,你直接下面这样访问,就可以了,
http://www.abc.com/action/index?id=1&date="2012-12-12"

路由是设定mvc访问的模式,你不可能在路由里面把参数格式化,如果你都把参数固定了,那项目中的其他页面访问参数不就有问题了。
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
百度网友fa7f784
2012-03-05 · 超过10用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:30.5万
展开全部
楼主并没有理解错路由机制,只是他不想让别人看见action而已,我的是这样:
请求:http://localhost:2097/getURLParames/999.html
页面显示:传送过来的路径是: 999
路由匹配:routes.MapRoute(
"start2", // 路由名称
"getURLParames/{url}.html", // 带有参数的 URL
new { controller = "WebForm", action = "getURL", url = "2012-3-1"} // 参数默认值
);
Action方法: public ActionResult getURL(string url)
{
ViewData["Url"] = url;
return View("showpararmes");
}

PS:当你请求的Action后面带有参数时,注意在定义Action的时候把参数也写到方法的参数中,例如getURL(string url) 括号内的string url,这样就可以获取Action后面的参数.路由器只不过是对URL进行加功的一个东西而已,如果不打算重新定义请求的URL,就不用写路由,不知回答是否满意呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhgfsh
2012-02-29
知道答主
回答量:11
采纳率:0%
帮助的人:1.5万
展开全部
要几个参数就加几个大括号,{id}/{date},在页面层用“<%$RouteUrl:id=123, date=456%>” 就可以设置多个参数了,
直接用路由url传值,在cs文件中用Page.RouteData.Values["id"]获取id=123
把参数固定可以防止无数据显示的路由,我就是把它固定了存到数据库中,你可以看下http://www.green-batteries.com/products/rechargeable-backup-battery.htm, 改动url后跳传到提示页面了,之前用动态的改了url页面上什么也没有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abcd25322
2012-01-07
知道答主
回答量:17
采纳率:0%
帮助的人:3.5万
展开全部
传递参数不能用session嘛?干嘛要在这里传?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不肖说焦虑
2012-01-07 · 超过17用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:39.8万
展开全部
见“重典”的讲解,很详细,百度一下重典MVC
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式