Asp.net mvc ActionLink未按预期工作

Asp.net mvc ActionLink未按预期工作,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,我正在传递empid,我希望它显示在url中,但它显示为querystring: <li>@Html.ActionLink(key.Value, "Attendance","HOD", new {empid=key.Key}, null) </li> 但它告诉我: /HOD/Attendance?empid=xyz%2

我正在传递empid,我希望它显示在url中,但它显示为querystring:

<li>@Html.ActionLink(key.Value, "Attendance","HOD",  new {empid=key.Key}, null) 
                                                                           </li>
但它告诉我:

/HOD/Attendance?empid=xyz%2Fabc //it's like query string but i don't want that.
有人能帮忙吗?我很感激你的帮助。先谢谢你

我已将此RouteMap添加到Global.asax

routes.MapRoute (
     "HOD_AttByEmpID", // Route name
     "{controller}/{action}/{empid}", // URL with parameters
     new { controller = "Account", action = "LogOn", 
                                    empid = UrlParameter.Optional }             
);

你试过这样吗

@Html.ActionLink(key.Value, "Attendance","HOD",  new { key.Key},null)

来源:

我想这是因为您的值包含一个“/”

也许你可以试试:

<li>@Html.ActionLink(key.Value, "Attendance","HOD",
         new {empid=Server.UrlEncode(key.Key)}, null) 
</li>
  • @Html.ActionLink(key.Value,“出勤”、“HOD”, 新的{empid=Server.UrlEncode(key.key)},null)

  • 只有当我们为与段变量不对应的属性提供值时,才会将这些值作为查询字符串附加到传出URL中。所以我猜路线有问题。如果它适用于Anuraj的示例,则您拼错了属性名称。@FlaviaObreja:它不适用于Anuraj的示例,还有其他建议吗?谢谢您的回复。。。试过了,但没用。为我提供了如下链接:“/HOD/Attention?empid=xyz%252fabc”@Sunny thx以供后续使用。值得一提的是,另一个选项是将您的路由url定义为“{controller}/{action}/{*empid}”,然后星星会抓住/Thank For your reply,但它不起作用,返回如下链接:“/HOD/Attention?Key=xyz%2Fabc”我尝试了以下方法-@Html.ActionLink(“Hello World”,“ShowDetails”,new{id=“1”},null)它返回的是这样的东西——这是我的路由配置——routes.MapRoute(名称:“Default”,url:“{controller}/{action}/{id}”,默认值:new{controller=“Home”,action=“Index”,id=urlparmeter.Optional});非常感谢,我没有把注意力放在路线图上。我用相同的参数添加了两个RouteMap。感谢分享routeMap配置。
    <li>@Html.ActionLink(key.Value, "Attendance","HOD",
             new {empid=Server.UrlEncode(key.Key)}, null) 
    </li>