锚标签重复控制器名称asp.net MVC 4

时间:2013-01-19 17:20:05

标签: asp.net-mvc asp.net-mvc-4 url-redirection

我有以下标记:

<a href="controllerName/ActionMethodName?Pid=@Model.Collection[i].Pid">Know more</a>

我使用以下 javascript:

将用户重定向到此页面
<input type="button" id="btnGoTo" value="ButtonCaption" onclick="window.location.href = '../Product/Index';" />

问题是当用户被重定向时,重定向发生为:

  

controllerName / controllerName / ActionMethodName ...

2 个答案:

答案 0 :(得分:0)

您应该使用路线:

onclick="window.location.href = '@(Url.Action("Index","Product")'"

不要在MVC中硬编码URL,始终使用URL帮助程序。

答案 1 :(得分:0)

你不应该有任何javascript。您将自动重定向到具有该href的指定网址。如果您使用RAZOR View Engine,那么您的通话应该是:

@Html.ActionLink(
    "some text", 
    "MyAction", 
    "MyController", 
    new { myParams = "Hello" }, 
    null
)

将生成正确的锚标记:

 <a href="/MyController/MyAction?myParams=Hello">some text</a>

您可以使用其中任何一个。在您的情况下,只需将/放在控制器名称之前就可以跳过使用Javascript。