说我有以下按钮
<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;
}
这对我来说非常讨厌,有没有更清洁的解决方案?我目前在html页面上没有表单,并且希望避免使用输入按钮,因为所有其他按钮都有Jquery UI图标(请参阅How to add jQuery UI Button icons to input buttons?)。