0

Un 在浏览器中呈现 @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 会产生 Un Expected 结果?这个问题有什么解决办法吗?

4

2 回答 2

1

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

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

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

于 2012-11-21T09:12:17.370 回答
0

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

我假设你在 DashBoardController

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

等等...

你可能想看看你用 Url.Action() 做了什么,以使这段代码更整洁

于 2012-11-21T09:12:38.847 回答