【问题标题】:How do I assign the value of a checkbox to a razor variable?如何将复选框的值分配给剃刀变量?
【发布时间】:2020-12-04 22:34:45
【问题描述】:

如何在变量中获取showHideDeletedRps 的复选框值?我的视图中有以下代码我使用依赖注入来填充视图中的字段,但我喜欢获取复选框的值以使用GetRPByID() 方法传递它。是否有可能在 asp.net core 中实现?

这是我在剃刀视图中的代码

@{
    var showDeleted = get_showDeletedRpValue // I like to get the checkbox value here 
    var id = Model.ID;
    var rpInfo = await rpService.GetRPByID(id, showDeleted);
}
   <div class="card">
       <input name="showHideDeletedRps" id="showHideDeletedRps" type="checkbox" value="true">
   </div>

添加代码

@{    
 var showDeleted = true; // or false, depends on what you want to be default
  if (Context.Request.Form.TryGetValue("showHideDeletedRps", out var formValue) && 
    bool.TryParse(formValue, out var value))
  {
      showDeleted = value;
  } 
   
}

【问题讨论】:

  • 您使用的是 MVC 还是带有代码隐藏的 Razor 页面?在这两种情况下,您都应该将复选框值绑定到模型。
  • @RoarS。是的,但我在这个页面使用视图组件我不能在这个视图中使用@model,我在主视图中使用了 -@model 这个是视图组件
  • 那你的设计可能有问题。您能否向我们提供完整的代码,包括控制器和所有 Razor 视图?
  • 如果你使用@Html.CheckBoxFor(m =&gt; m.showHideDeletedRps)会发生什么
  • @VDWWD:在此代码中,唯一会更改复选框值的位置是在客户端。渲染发生在服务器端。

标签: asp.net asp.net-core dependency-injection


【解决方案1】:

支持表单数据或查询字符串的代码

@{
    var showDeleted = true; // or false, depends on what you want to be default
    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;
    }
}

对于自动回发,将此脚本放在页面底部(确保在此脚本之前包含 jQuery)。适用于复选框、单选按钮和选择。

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

并像这样更改复选框

<input autopostback="true" name="showHideDeletedRps" id="showHideDeletedRps" type="checkbox" value="true">

【讨论】:

猜你喜欢
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多