无法使用JQuery删除ASP.NET MVC PartialView

问题描述 投票:0回答:1

我有一个带有ajax格式按钮的主视图,该触发器PartialView中的产品列表。但是我也需要躲藏带按钮的部分视图(产品列表),当必要的。那我接下来要用这样的方法部分视图。但是似乎用jQuery脚本可以做到这一点从主观上看不是起作用,但从内在上也不能起作用视图(实际上,我可以从最后一个,所以似乎我需要将脚本部分页)。所以我决定进入主视图#allProducts id从局部视图访问jquery parent(),并且删除/清除它,但是它不起作用。这是主视图代码:

  @using (Ajax.BeginForm("ShowAll", "Home", new 

  AjaxOptions
                {
                    InsertionMode = 

 InsertionMode.Replace,
                    HttpMethod = "GET",
                    OnFailure = "searchFailed",
                    UpdateTargetId = "allProducts",
                }))
                {
                    <input type="submit" 

 value="Show Products" class="btn btn-success" />
                }
</div>
<div id="allProducts">
</div>
@section Scripts {
<script>
    $(document).ready(function () {
        $("#allHide").click(function () {
            alert("Submitted");
            $('#allProducts').empty();
        });
    });
</script>
<script src="~/Scripts/jquery-1.8.0.js"></script>
<script 
src="~/Scripts/jquery.unobtrusivejax.js"></script>

我还把@sectio脚本作为失败样本在这里回复:https://dev.to/skipperhoa/asp-net-mvc-5-ajax-form-2fnf部分视图,但是它不起作用。共享视图中的代码(_ShowAll.cshtml):

  <input type="submit" value="Hide Products" id="allHide" class="btn btn-success" ...
 <script src="~/Scripts/jquery-1.8.0.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script>
    $(document).ready(function () {
        $("#allHide").click(function () {
            alert("Submitted");
       $("#allHide").parent().find("#allProducts").empty();
//No two parent()-s, no $(this).parent(), neither remove() instead empty() does not help.      
        });
    });

这意味着我无法使用Jquery来将button(或其中的任何其他元素)中的partialview封装起来,然后再使用parent()函数将其从partialview封装到mainview中,然后找到#allProducts并调用remove()/ empty( )?为什么此技术不起作用?这甚至是问题,如何检查我是否使用parent()访问了引用的视图?

jquery asp.net-mvc view
1个回答
0
投票

如果How to Call Partial View with Asp.Net Mvc上的方法不能解决您的问题,您也可以使用以下方法来显示/隐藏div或partialview。

function showElement(element) {
    $(element).attr('class', 'show');
}

function hideElement(element) {
    $(element).attr('class', 'hide');
}

.hide {
    display: none !important;
}

.show {
    display: block !important;
}

.invisible {
    visibility: hidden;
}

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.