2

我的问题是我想从这个模板中添加一个按钮: https ://designreset.com/cork-admin-v1/ltr/demo3/element_buttons.html

如果我单击一个按钮,我想在我的控制器上运行一个功能,我该怎么做?已经用这样的代码试过了:

<button type="button" onclick='location.href=@Url.Action("redirect","Login")'" class="btn btn-info mb-2">Info</button>

这是行不通的。我也用 javascript 尝试过,这行得通,但我认为这不是最好的方法。

<span onclick="login()" class="btn btn-primary" value="">Log In</span>"
<script>
    function login() {
        
        let userName = $('.userName').val();
        let password = $('.password').val();
        $.ajax({
            url: '/login/login?userName=' + userName + '&&password=' + password,
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                console.log(data);
                alert(data);
                window.location.href = "/login/home";
            },
            error: function (resp) {
                alert(resp);
                console.log(resp);
            }

        });
    }
</script>

如果我真的需要用javascript来做这件事,有人可以说我吗?或者我可以直接调用控制器动作,如果是,如何?

编辑:

使用以下代码,它似乎可以工作:

<button type="submit" asp-action="redirect" class="btn btn-info mb-2">Info</button>
4

1 回答 1

0

试试这个而不是 ASP.NET MVC 5:

<button type="button" onclick="window.location='@Url.Action("ActionName", "ControllerName")'" class="btn btn-info mb-2">Info</button>

对于 ASP.NET Core,您的代码是正确的,

<button type="submit" asp-action="redirect" asp-controller="ControllerNameHere" class="btn btn-info mb-2">Info</button>

还可以指定其他详细信息,例如在控制器上传递值:

<button type="submit" asp-action="redirect" asp-controller="ControllerNameHere" asp-route-AnyId="@Model.AnyId" class="btn btn-info mb-2">Info</button>
于 2021-04-08T15:21:23.583 回答