字符串包含/

时间:2017-02-27 16:17:11

标签: c# asp.net-mvc

我有一个字符串,我想将它传递给id in action

@Html.ActionLink("test","GetData","Home",new {id="abc/cdef"},new {@class="abnc"})

我的行动是

       public ActionResult GetData(string id)
        {
            return view();
        }

但它没有采取行动并给出错误

  

HTTP错误404.0 - 未找到您正在寻找的资源   删除,更改名称或暂时不可用。

如何解决此问题,谢谢

1 个答案:

答案 0 :(得分:1)

<强>问题 如果您在/中有string,并且您将其视为另一个参数,则会发生这种情况,因此在abc/cde中,默认路由认为abc为{ {1}}但在id之后找不到匹配项,因此会出现此错误

<强>解决方案

所以要解决此问题,请添加/

*

routes.MapRoute( name: "Default", url: "{controller}/{action}/{*id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); 所做的是将所有内容视为参数/{*id}的值,包括id