[英]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.