0

次のボタンがあるとしましょう

<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アイコンがあるため、入力ボタンの使用は避けたいと思います(jQuery UIボタンアイコンを入力ボタンに追加する方法を参照してください)。

4

0 に答える 0