在浏览器中呈现@ 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(“重启”,“重启”)时,它会像这样正确显示。
<a href="/Dashboard/Restart?requestId=2362e13b-e4fc-4140-b7ad-1bd0e82b6bde" onclick="return confirm('Are you sure to Restart?');">Restart</a>
为什么ASP.NET MVC4会产生未预期的结果?这个问题有什么问题吗?
答案 0 :(得分:1)
您不应将此行为视为意外。您正在使用以下LinkExtensions.ActionLink方法的重载:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
Object routeValues,
Object htmlAttributes
)
所以第二个参数是动作名称,控制器名称默认为当前控制器。
答案 1 :(得分:0)
因为你需要检查Html.ActionLink的参数
我假设你在DashBoardController
第一个para是您希望在链接中显示的字符串 第二个是参数 第三个是控制器
依旧......
您可能希望查看您使用Url.Action()执行的操作,以使此代码更整洁