asp.net-mvc - 是否可以通过单击按钮获得 'Swap' 部分 View ?

标签 asp.net-mvc partial-views

我目前有一个父 View ,其设计如下:

+----------------------------------------------+
|                    |           ___           |
|      ^             |          |   \          |
|     / \            |          |___/          |
|    /---\           |          |   \          |
|   /     \          |          |___/          |
|                    |                         |
|--------------------+-------------------------|  <--- Over View Of Page layout
|                    _____                     |
|                   /                          |
|                  |                           |
|                  |                           |
|                   \_____                     |
+----------------------------------------------+

其中 A、B 和 C 的“部分”由部分 View 组成。

在我的 A 部分中,我有两个按钮和(当前)一个局部 View :
+----------------------------------------------+--------------------------------
| BUTTON 1   | BUTTON 2  |                     |
|------------------------+---------------------|               ______ 
|                                              |              |      \
|           <content here>                     |              |       |   
|                                              |              |       |         
|                                              |              |------/        
|                                              |              |      \_________          
|                                              |           __________/
|                                         _____|__________/
|                       _________________/
|         _____________/
|________/

                   ^
                   |
                   |
        Close up of 'A' section

我目前按下按钮 1 并切换此 View 的可见性,使用:

HTML
<button class="myBtn" onclick="toggle_visibility('btn1Partial');">Arm Details</button><a>

Javascript:
<script type="text/javascript">
    function toggle_visibility(id) {
       var e = document.getElementById(id);
       if(e.style.display == 'block')
          e.style.display = 'none';
       else
          e.style.display = 'block';
    }
</script>

但是,我找不到使用第二个按钮实现此目的的方法,以便“删除”(未隐藏)第一个局部 View ,并用另一个按钮代替它。

我确信有一种方法可以使用 MVC 模式“正确地”做到这一点,但我似乎找不到它! :(

我想要做的就是将 A 部分的内容与另一个部分 View “交换”(实际上很像一个选项卡,但部分 View 在“重新出现”以显示最新信息时需要“重新调用” - 所以只需隐藏/showing 在这里不起作用)。

有什么建议?

编辑

这个问题的另一个方向也可能是“如何删除局部 View 并在其位置打开另一个 View ?”

最佳答案

这似乎是一个普遍的困惑。 View 、部分 View 等仅适用于服务器端。一旦您的页面在客户端的浏览器中呈现出来,它就只是一个网页。无论您在何处拥有多少部分 View ,在那个时候都只是 HTML。

因此,当您谈论替换此页面上的某个区域时,您就是在谈论交换 DOM 元素。这意味着您需要使用 JavaScript 来选择一些元素,例如 div包含要替换的内容。然后,以某种方式获取一些新的 HTML 内容,并将其添加到您选择的元素所在的 DOM 中。这个 HTML 可以在页面上创建,或者你可以通过 AJAX 返回到服务器来获取它。在您的场景中,您正在考虑使用 AJAX。

要使用 AJAX,您的服务器上需要一个端点,该端点将返回一些 HTML。在 ASP.NET MVC 术语中,这意味着您需要一个返回 PartialView 的操作。 .

关于asp.net-mvc - 是否可以通过单击按钮获得 'Swap' 部分 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26529148/

相关文章:

asp.net-mvc - 用于 ASP.NET MVC 的 Spark T4 模板

asp.net-mvc-3 - 在部分 View 中获取 viewdatadictionary 值

ASP.NET Web 部署失败;项目中不存在 AddScheduledJob

javascript - URL 中的日期值因 MVC GET 请求而损坏

asp.net-mvc - 我可以在局部 View 中使用局部 View 吗?

c# - MVC 部分 View 和 Controller 代码

c# - 从 ASP.NET MVC 中的布局调用操作方法

asp.net-mvc - Kendo UI 调度程序 : Custom view and edit behavior

visual-studio-2010 - 命名空间 'Model'的类型在命名空间中不存在

asp.net-mvc - 从部分 View 调用操作时以纯文本形式查看渲染