Asp.net mvc “显示”;ID";MVC中url中的word

Asp.net mvc “显示”;ID";MVC中url中的word,asp.net-mvc,Asp.net Mvc,如果我更改了参数名而不是id,则它正在工作。只有id在url中不可见 UpdateCase操作: routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

如果我更改了参数名而不是id,则它正在工作。只有id在url中不可见

UpdateCase操作:

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

如果URL中未指定参数,则会添加问号,因此从路由中删除
{id}
将强制在URL中添加问号

[Authorize]
[HttpGet]
public ActionResult UpdateCase(Int64 id)
{

}

一个可能的解决方案是将路由配置更改为

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
在这种情况下,路由表中没有名为
id
的参数,因此
Url.Action
无法使用它,因此您将获得预期的Url


但是要小心并检查其他操作

尝试将属性[Route(“{action}/id={0}”)]添加到操作接待员它应该是这样的吗?不,它应该作为你在控制器中操作的一个属性。你可以显示
UpdateCase
?@LarsKristensen的控制器操作吗?我在编辑的问题中添加了UpdateCase。当我从路由中删除id时,重定向停止工作,在点击按钮时不会发生任何事情。你是如何生成链接的,你能将代码添加到你的问题中吗?
@Html.ActionLink(“单击我”、“关于”、“主页”、新的{id=5},null)
这对我有效?它在我问题的第一行抱歉,我错过了。这似乎对我有用:
所以我们将默认参数从id改为param。它起作用了!是的,检查它是否在其他情况下损坏。很高兴能帮上忙是的,我会查的。我刚刚开始我的项目,所以我不认为这在将来会有问题
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{param}",
    defaults: new { controller = "Home", action = "Index", param = UrlParameter.Optional }
);