public ActionResult PublicList(string id)
{
string itemcode = id;
}
public ActionResult SLTNot()
{
string url = Request.QueryString["url"].ToString();
string newUrl = System.Web.HttpUtility.UrlDecode(url);
Response.Redirect(newUrl);//此时newUrl是Contronller/PublicList/3
return View();
}
问题:先执行SLTNot,在火狐谷歌中正常跳转,但是在IE中总是显示itemcode为null,即值传递失败,id获取不到3
请问怎么解决?
调试的时候,newurl明明是contronller/publicList/3,但是到浏览器中时,3没了
改为 contronller/publicList?id=3
谢谢。。。如果格式就是这样的Contronller/PublicList/3,怎么解决,出现这种问题,是什么原因呢?
@弦断有谁听:这样有这样的写法,不知道你试过没
@稳稳的河: 这个是重写的路由,他上面没有用重写路由,只是路径传输不对了。
@弦断有谁听: 默认的路由是
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Authentication", action = "Login", id = UrlParameter.Optional }
);
id不用管,后面的就和以前的webform参数一样传递,方法参数名=value
@meclus: 哦,我看他是想实现contronller/publicList/3是需要重写路由,不过MVC5的这个还是挺好用的
@meclus: 我知道原因了。我html写的有问题,原来我这样写的<a id="aRedirect" href="">XXX</a>,后台不管用什么方式跳转页面,都不成功,地址总是那个。。。把a属性href添加一个#就一切OK了。谢谢
@稳稳的河: 谢谢,已解决