我有登录控制器和注册ActionResult
public ActionResult Register()
{
return View();
}
如果我发布任何数据到注册actionresult url好像如下,
WebSiteName/Login/Register
我想将路线网址更改为 WebSiteName / Login / Reg = Id?
所以我尝试了以下但是我无法改变路线网址。
routes.MapRoute(
name: "something",
url: "Login/Reg=Id?",
defaults: new
{
controller = "Login",
action = "Register",
id = id = UrlParameter.Optional
}
);
那么如何在asp.net mvc中更改url?
任何帮助将不胜感激。
感谢。
答案 0 :(得分:6)
您正在尝试使用不正确的url参数形式。你有的选择是:
Url部分参数:WebSiteName / Login / Reg / {id}
为此,您可以使用以下配置
routes.MapRoute(
name: "something",
url: "Login/Reg/{id}",
defaults: new
{
controller = "Login",
action = "Register",
id = UrlParameter.Optional
}
);
查询字符串参数:WebSiteName / Login / Reg?id = {id}
这里您根本不需要在config中指定参数:
routes.MapRoute(
name: "something",
url: "Login/Reg",
defaults: new
{
controller = "Login",
action = "Register"
}
);
当然,在这两种情况下,假设您的操作Register
都有参数ID。
答案 1 :(得分:0)
我在这里删除了网址中的最后两个传递参数
这是我的网址链接 - > http://localhost:12345/User?value=98998?id=2
我想从网址链接中删除value和id参数
像这样修改你的Routeconfig.cs
routes.MapRoute(
"User",
"User/{value}/{id}",
new { controller = "User", action = "Index", value= UrlParameter.Optional, id = UrlParameter.Optional }
);
用户控制器
public ActionResult Index(string value, int id)
{
// write Your logic here
return view();
}
为UserController创建索引视图
@Html.ActionLink("LinkName", "Index", "User", new {value = "98998", id = "2"},null)
最后我们得到了一个结果:http://localhost:12345/User/98998/2
同样,我们可以从网址中删除多个参数