C# 字符串包含时找不到操作/
我有一个字符串,我想把它传递给idC# 字符串包含时找不到操作/,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个字符串,我想把它传递给id @Html.ActionLink("test","GetData","Home",new {id="abc/cdef"},new {@class="abnc"}) 我的行动是 public ActionResult GetData(string id) { return view(); } 但它不会付诸行动,并且会产生错误 HTTP错误404.0-未找到您正在查找的资源已被删除 已删除、
@Html.ActionLink("test","GetData","Home",new {id="abc/cdef"},new {@class="abnc"})
我的行动是
public ActionResult GetData(string id)
{
return view();
}
但它不会付诸行动,并且会产生错误
HTTP错误404.0-未找到您正在查找的资源已被删除
已删除、名称已更改或暂时不可用
如何解决此问题谢谢问题
当您在字符串中有/
并且您将其传递给操作时,就会发生这种情况,因为路由将其视为另一个参数,因此在abc/cde
中,默认路由将abc
视为id
,但在//code>之后,它找不到匹配项,因此会出现此错误
解决方案
所以要解决这个问题,请添加*
如下
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{*id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
> <代码> > {*ID} <代码>,将所有内容视为参数值<代码> ID <代码>,包括<代码> /<代码> < /p>必须将ID中的斜杠转义,以便获得URL。如果我有一个包含/的字符串,您会怎么办?还有别的办法吗?谢谢你的解释