@ Html.Actionlink没有超链接到实际的控制器动作

时间:2016-04-26 10:08:00

标签: asp.net-mvc html.actionlink

在mvc项目中有两个控制器

  1. HomeController 包含视图client
  2. EndorsementController 包含视图add
  3. 来自add中的EndorsmentController视图我写了一个动作链接,如下所示

    @Html.ActionLink("Back to Home", "client", "Home", new { @style = "color: #FFF" })
    

    但是,当我点击此动作链接时,它正在寻找一个URL

    Endorsement/client
    

    实际上它应该是

    Home/Client
    

    为什么没有采用正确的控制器名称?我缺少什么?

3 个答案:

答案 0 :(得分:3)

您使用了错误的ActionLink重载方法。您可以在视图中尝试以下代码:

@Html.ActionLink("Back to Home", "client", "Home", null, new { @style = "color: #FFF" })

呈现的HTML将如下所示:

<a href="/Home/client" style="color: #FFF">Back to Home</a>

只是一个指针尝试大写您的视图名称,而不是使用client尝试Client。两者都有效。

答案 1 :(得分:1)

你把你的html属性放在&#34; object route values&#34; 你必须把null放进去

使用以下语法获得正确的输出:

@Html.ActionLink("Back to Home", "client", "Home", null, new { @style = "color: #FFF" })

click here

答案 2 :(得分:1)

带回家的重点是你想要使用的特殊超载。由于这是您想要使用synthax://linkText, actionName, controllerName, routeValues, htmlAttributes,以下是您的ActionLink应该是这样的

@Html.ActionLink("Back to Home", "Client", "Home", null, new { @style = "color: #FFF" })

您之前使用的是这个synthax:// linkText, actionName, routeValues, htmlAttributes,如下所示

@Html.ActionLink("Back to Home", "client", "Home", new { @style = "color: #FFF" })

因此Url混淆