Asp.net mvc 核心购买模板按钮自定义 onClick 事件在控制器

问题描述 投票:0回答:2

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

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

<button type="button" onclick='[email protected]("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>
c# asp.net-mvc asp.net-core
2个回答
1
投票

对于 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>

0
投票

小威利大卫的代码:

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

适用于我使用 .Net Core 版本 8.0.200。它也有轻微的变化(在原始问题中提到):

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

还可以通过附加 id(在本例中由变量 @yourid 包含)来扩展传递给控制器的 URL,以包含 id(由 Program.cs 中的路由定义):

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

© www.soinside.com 2019 - 2024. All rights reserved.