是否可以让 CheckBox
像 ActionLink
一样在点击时调用 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/