Javascript 如何将复选框值发布到将值保存到会话的控制器?
我在复选框上有以下代码单击以获取复选框的复选框值,并将true或false传递给控制器Javascript 如何将复选框值发布到将值保存到会话的控制器?,javascript,asp.net,asp.net-mvc,asp.net-core,session,Javascript,Asp.net,Asp.net Mvc,Asp.net Core,Session,我在复选框上有以下代码单击以获取复选框的复选框值,并将true或false传递给控制器var rpInfo=wait rpService.GetRPByID(id,showdelected),我尝试了以下操作,但它没有保留选定的值或在复选框更改时不更新 如何使用会话应用相同的逻辑 @{ var showDeleted = true; if (Context.Request.HasFormContentType && Context.Request.Form.Tr
var rpInfo=wait rpService.GetRPByID(id,showdelected)代码>,我尝试了以下操作,但它没有保留选定的值或在复选框更改时不更新
如何使用会话应用相同的逻辑
@{
var showDeleted = true;
if (Context.Request.HasFormContentType && Context.Request.Form.TryGetValue("showHideDeletedRps", out var formValue)
&& bool.TryParse(formValue, out var parsedFormValue))
{
showDeleted = parsedFormValue;
}
else if (Context.Request.Query.TryGetValue("showHideDeletedRps", out var queryValue)
&& bool.TryParse(queryValue, out var parsedQueryValue))
{
showDeleted = parsedQueryValue;
}
var id = Model.ID;
var rpInfo = await rpService.GetRPByID(id, showDeleted);// used dependency injection to populate fields in a View Component
}
我使用这个javascript代码
<script type="text/javascript">
$("select[autopostback=true],input[type=checkbox][autopostback=true],input[type=radio][autopostback=true]").on("change", function () {
$(this).closest("form").submit();
});
</script>
$(“选择[autopostback=true],输入[type=checkbox][autopostback=true],输入[type=radio][autopostback=true])。打开(“更改”,函数(){
$(this).最近的(“表单”).submit();
});
更改时复选框
<input autopostback="true" name="showHideDeletedRps" id="showHideDeletedRps" type="checkbox" value="true">
如果您只想在单击复选框时将复选框的值传递给控制器的某个操作,您可以通过表单直接完成:
@{
ViewData["Title"] = "Test";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<form asp-action="test" method="post">
<input autopostback="true" name="showHideDeletedRps" id="showHideDeletedRps" type="checkbox" value="true">
</form>
@section Scripts{
<script type="text/javascript">
if ('@ViewData["isChecked"]' == "True") {
$('#showHideDeletedRps').prop('checked', true);
} else {
$('#showHideDeletedRps').prop('checked', false);
}
$("select[autopostback=true],input[type=checkbox][autopostback=true],input[type=radio][autopostback=true]").on("change", function () {
$(this).closest("form").submit();
});
</script>
}
以下是测试结果:
使用AJAX可以轻松实现这一点。你介意一个片段吗?@Borntocode谢谢你我怎么做,我使用了依赖注入我可以直接调用api控制器吗?是的,你可以。对不起,我来晚了。查看@Yongqing Yu答案。我想它解决了你的问题
[HttpPost]
public IActionResult Test(bool showHideDeletedRps)
{
ViewData["isChecked"] = showHideDeletedRps;
return View();
}