<a href="@Url.Action("UpdateCase", "Receptionist", new { id = @Model[SrNo].Patient_ID })" class="btn btn-danger">Edit</a>
在href中,我将id作为参数传递。所以当我重定向到行动时,我有以下网址
但我想在网址中看到id字。
RouteConfig
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
如果我更改参数名称而不是id,则它正在运行。只有ID在网址中不可见
UpdateCase操作:
[Authorize]
[HttpGet]
public ActionResult UpdateCase(Int64 id)
{
}
答案 0 :(得分:2)
可能的解决方案之一是将路线配置更改为
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{param}",
defaults: new { controller = "Home", action = "Index", param = UrlParameter.Optional }
);
在这种情况下,您在路由表中没有名称为id
的参数,因此Url.Action
无法使用它,因此您将获得预期的网址。
但要小心并检查其他人的行动
答案 1 :(得分:0)
如果未在网址中指定参数,则会添加问号,因此从路线中删除{id}
会强制将问号添加到网址中。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);