将数据从局部视图传递到父视图

Posted

技术标签:

【中文标题】将数据从局部视图传递到父视图【英文标题】: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") 时,它将同时选择两者。这可能是问题所在。 【参考方案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>

【讨论】:

以上是关于将数据从局部视图传递到父视图的主要内容,如果未能解决你的问题,请参考以下文章

使用委托将数据从模态视图传递到父视图(在情节提要中使用 segue)

如何将数据从子视图传递到父视图到 SwiftUI 中的另一个子视图?

将 NSMutableArray 从模态视图控制器传递到父视图

Swift - 将数据从子视图传递到父视图

将任意数据从局部视图传递到布局视图

将变量从视图传递到布局的局部视图