我有一个字符串,我想将它传递给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 - 未找到您正在寻找的资源 删除,更改名称或暂时不可用。
如何解决此问题,谢谢
答案 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