繁体   English   中英

ASP.NET MVC4中的Html.ActionLink()无法正确呈现

[英]Html.ActionLink() in ASP.NET MVC4 is not Rendering Correctly

在浏览器中呈现@ Html.ActionLink时,无法获得预期的结果。 以下是我用jqGrid编写的用于显示链接列的代码。

{ name: 'Restart',
                         formatter: function (cellvalue, options, rowObject) {
                             var x = '@Html.ActionLink( "Restart", "Dashboard", new { requestId ="myId"  }, new { onclick = "return confirm('Are you sure to Restart?');" })';
                             return x.replace("myId",rowObject[8]);
                         }, align: 'left', width: 100
                     } 

在浏览器中渲染后,它显示如下

<a href="/DashBoard/Dashboard?requestId=2362e13b-e4fc-4140-b7ad-1bd0e82b6bde" onclick="return confirm('Are you sure to Restart?');">Restart</a>

当我在上面的代码中替换@ Html.ActionLink(“ Restart”,“ Restart”)时,它会像这样正确显示。

 <a href="/Dashboard/Restart?requestId=2362e13b-e4fc-4140-b7ad-1bd0e82b6bde" onclick="return confirm('Are you sure to Restart?');">Restart</a>

为什么ASP.NET MVC4产生意外结果? 这个问题有解决办法吗?

您不应该将此行为视为意外情况。 您正在使用LinkExtensions.ActionLink方法的以下重载:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    Object routeValues,
    Object htmlAttributes
)

因此,第二个参数是动作名称,控制器名称默认为当前控制器。

这是因为您需要检查Html.ActionLink的参数

我假设你在DashBoardController中

第一个参数是要在链接中显示的字符串,第二个参数是参数,第三个参数是控制器

等等...

您可能想看看您对Url.Action()的处理方式,以使此代码更加整洁

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM