javascript - 单击复选框后如何调用 Controller 方法?

标签 javascript asp.net .net asp.net-mvc asp.net-mvc-3

是否可以让 CheckBoxActionLink 一样在点击时调用 Controller 方法?基本上,我想替换这个 ActionLink:

@Html.ActionLink("Switch status", "SwitchTaskIsComplete", "Task", new {
    taskId = task.TaskId, 
    isComplete = !task.IsComplete, 
    userId = Model.UserId
}, null)

使用 @Html.CheckBox,调用相同的方法

SwitchTasksIsComplete(int taskId, bool isComplete, int userId)

TaskController 并在每次单击时使用其 checked 属性作为 isComplete 参数。

最佳答案

您可以为此使用 HTML onclick:

@Html.CheckBox("mycheckbox", new { onclick="triggerLink()" })

使用 @Url.Action 而不是 @Html.ActionLink 来获取 URL:

<script>
    function triggerLink() {
        var theUrl = '@Url.Action("SwitchTaskIsComplete", "Task", new {taskId = task.TaskId, isComplete = !task.IsComplete, userId = Model.UserId}, null)';
        window.location = theUrl;
    }
</script>

您还可以将整个表达式内联到属性中:

@{
    var url = Url.Action("SwitchTaskIsComplete", "Task", new {taskId = task.TaskId, isComplete = !task.IsComplete, userId = Model.UserId}, null);
}
@Html.CheckBox("mycheckbox", new { onclick="window.location = '" + url + "'" })

关于javascript - 单击复选框后如何调用 Controller 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432753/

相关文章:

c# - Linq,如何使用子查询?

asp.net - 如何在ASP.NET MVC4中添加新页面?

c# - 来自 Web 应用程序的 .NET 实时电子邮件通知

.net - 关于使用 db4o 的几个问题

javascript - 无法通过 key (Firestore)获取数据

javascript - 如何运行本地 Windows 应用程序并将输出通过管道传输到浏览器

javascript - Facebook 点赞按钮错误 - iFrame 显示个人资料图片而不是点赞按钮

javascript - 使用 for 循环来识别 html .classes (jQuery)

asp.net - 缓存 WCF 代理?

c# - 包含数组所有字符串的字段