我有一个控制器动作,它将id作为参数。调用它的另一种方法是:/ Controller / Action / id,如果我使用ActionLink助手(如下所示),则会正确生成URL。
Html.ActionLink(linkText, action, controller, new { id = myid })
但是,我需要获取url以在新窗口中打开页面。我尝试使用BuildUrlFromExpressionForAreas,但它给了我一个以下格式的URL:/ Controller / Action?id = myid。
Html.BuildUrlFromExpressionForAreas<MyController>(t => t.Action(myid))
这不起作用 - 我得到以下异常:
参数字典包含非可空类型'System.Guid'的参数'id'的空条目,用于方法'System.Web.Mvc.ActionResult Resume(System.Guid)'
我应该使用另一种辅助方法吗?
谢谢!
答案 0 :(得分:0)
希望有更好的方法,但与此同时,这是我的解决方案:
1 - 将“action-link”类添加到操作链接
Html.ActionLink(linkText,action, controller,new {id = myid},new { @类= '动作链接'})
2 - 使用jquery获取生成的url并将其绑定到click事件并将href设置为#
$(document).ready(function () {
$(".action-link").each(
function (index, el) {
var url = $(this).attr("href");
$(this).attr("href", "#").bind("click",
function () {
var options = "resizable=yes,scrollbars=yes,toolbar=no,status=no,menubar=no";
window.open(url, "Interview", options, true);
});
}
);
});