Asp.net mvc ActionLink未按预期工作
我正在传递empid,我希望它显示在url中,但它显示为querystring: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
<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>