【问题标题】:Passing data from partial view to parent view将数据从局部视图传递到父视图
【发布时间】:2019-11-14 16:49:09
【问题描述】:

我正在尝试将值从部分视图传递到父视图。我尝试了以下对我不起作用的方法。有人可以帮助我如何实现这一目标吗?通过使用部分视图返回的值,我试图隐藏父视图中的按钮。

父视图:

    <div id="ProductCount">
    @{
        Html.RenderAction("ProductPartialView", "ProductList", new { area = "PR", ProductID = Model.ProductID, allowSelect = true});
    }

<div class="saveBtnArea">
    <input type="submit" value="Submit App" id="btn-submit" />
</div>

    jQuery(document).ready(function () {
            var ProductCount = jQuery("#ProductCount").val();

            if (ProductCount == 0) {
                jQuery("#btn-submit").hide();
            }
            else {
                jQuery("#btn-submit").show();
            }
        });

局部视图:

<fieldset>
<div>
<input type="hidden" id="ProductCount" value="5" />
</div>
</fieldset>

【问题讨论】:

  • 应该返回什么?还有你想做什么。
  • 还有 2 个 id 为 ProductCount 的元素:divinput。因此,当您选择 jQuery("#ProductCount") 时,它将同时选择两者。这可能是问题所在。

标签: c# jquery .net asp.net-mvc user-interface


【解决方案1】:

您可以像这样为隐藏的输入字段实现更改事件

$('#ProductCount').change(function(){
      var ProductCount = $(this).val();

      if (ProductCount == 0) {
            jQuery("#btn-submit").hide();
      }
      else {
            jQuery("#btn-submit").show();
      }
}).trigger('change');

$('#ProductCount').val(5);

$('#ProductCount').change(function(){
      var ProductCount = $(this).val();
      
      if (ProductCount == 0) {
            jQuery("#btn-submit").hide();
      }
      else {
            jQuery("#btn-submit").show();
      }
}).trigger('change');

$('#ProductCount').val(5);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='hidden' id='ProductCount' />

<button id='btn-submit'>Submit</button>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多