说我有以下按钮
<button id="CopyUsersRolesButton" type="button" onclick="CopyUsersRoles()" data-url="@Url.Action("CopyUsersRoles", "Index", new {userId = "0" })">
Copy Users Roles</button>
我想重定向到由以下操作返回的视图:
public ActionResult CopyUsersRoles(int userId)
{
var model = new CopyUsersRolesViewModel
{
SelectedUserId = userId
};
return View(model);
}
我需要将 javascript 变量 ( SelectedUserId
) 传递给操作。
我让它工作的唯一方法是在 URL.Action 方法中保留一个占位符并将其替换如下:
function CopyUsersRoles() {
var url = $('#CopyUsersRolesButton').data('url');
window.open(url.replace('0', SelectedUserId));
return false;
}
这对我来说感觉很hacky,没有更清洁的解决方案吗?我目前在 html 页面上没有表单,并且希望避免使用输入按钮,因为所有其他按钮都有 Jquery UI 图标(请参阅如何将 jQuery UI 按钮图标添加到输入按钮?)。