【问题标题】:Hide Button based on the result in Partial view MVC根据部分视图 MVC 中的结果隐藏按钮
【发布时间】:2019-11-14 15:20:24
【问题描述】:

我有一个 parent.cshtml 页面,它在其中呈现一个名为 _child.cshtml 的局部视图。这个 _child.cshtml 包含一个数据表并在网格中显示数据。每当此数据表不包含时,我需要隐藏 parent.cshtml 中的按钮。请帮助我如何实现这一目标。

到目前为止,我在父视图中尝试过以下操作

jQuery.ajax(type: "POST",
        url: "{ChilePartialView}",
        data: { data },
        success: function (response) 
        {
            if (!response.Product.Count > 0) {
                jQuery("formSaveButton").hide();
            }
        });

我也尝试过以下方法:

jQuery(document).ready(function () {
    $.get('/ControllerName/ActionMethodName', function (data) {
        if (!data.Products.Count > 0) {
            $("formSaveButton").hide();
        }
    });

但他们都没有工作

【问题讨论】:

  • 到目前为止你尝试过什么?你能展示你的研究吗?
  • @JordanRieger,我已经编辑了我的主要帖子。我尝试使用 JQuery 从部分视图中获取响应。但不确定这将如何工作。你能帮我看看我做错了什么吗?

标签: c# html .net user-interface model-view-controller


【解决方案1】:

您应该了解控制器的操作基本上只返回 html 标记(如果您没有显式返回其他 ActionResult,例如 JSON)。您不能以像

这样的方式使用此标记
if (!data.Products.Count > 0)

您插入到子视图的任何 JS 脚本都将仅呈现为您的 html 页面的一部分,并且可以隐藏页面中的任何元素 - 无论隐藏元素是在服务器端的父视图还是子视图中都没有关系。因此,您可以向您的子视图插入一个内联脚本,该脚本将隐藏 $(document).ready 侦听器中的选定元素。

更准确的解决方案使用部分(例如参见this artice)并允许在一个位置输出所有内联脚本(通常在关闭正文标记之前)。

【讨论】:

  • 感谢您的回复。你能指导我如何插入内联脚本吗?请不要介意,因为我是新手。
  • @user2083386 就像 html 中的脚本,即
猜你喜欢
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
相关资源
最近更新 更多