MVC - 使用 Viewbag 变量来确定部分视图不起作用

Posted

技术标签:

【中文标题】MVC - 使用 Viewbag 变量来确定部分视图不起作用【英文标题】:MVC - Using Viewbag variable to determine Partial View not working 【发布时间】:2015-06-01 01:04:29 【问题描述】:

我想设置一个 ViewBag 变量(标志)来确定在我的共享布局视图中显示哪个局部视图。部分是一组图标。单击“更多”图标时,我想用一组不同的菜单图标交换不同的部分。在布局javascript中设置“更多”图标点击代码:

$(function () 

    $('#moreIcon').click(function () 
        $.ajax(
            url: 'Home/LoadMoreIcons',
            dataType: "html",
            success: function (data) 
            
        );
    );
);

控制器动作是:

public EmptyResult LoadMoreIcons()


    ViewBag.arrowClick = true;
    return null;


_layout 视图(剃刀)代码是:

    <div id="headIcons">
    @if ((bool?)ViewBag.arrowClick == false)
    
        @Html.Partial("mainIconsPartial")
    
    else
    
        @Html.Partial("moreIconsPartial")
    
</div>

发生的事情是“其他”逻辑永远不会发生,即使我可以在单击“更多”图标时在控制器操作中设置 Viewbag 变量的位置中断。

【问题讨论】:

(bool?)ViewBag.arrowClick 的评估结果是什么? @if (true)呢? 不确定您的意思。我怎么知道它的评估结果是什么? 对不起 - 这是错误的......愚蠢的错误......在 Index 操作中将 var 设置为 false 并忘记了它。覆盖我之前的设置。 【参考方案1】:

我的错...错过了我之前设置的一组 Viewbag 变量。

【讨论】:

以上是关于MVC - 使用 Viewbag 变量来确定部分视图不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将值从部分值传递到 mvc 中的布局视图

带有 viewbag 的 MVC 数据集

MVC 将 ViewBag 传递给控制器

MVC部分视图的巧用

如何确定视图中动作的上下文(asp.net mvc)

使用 c# 在 mvc4 中使用 viewbag 数据的下拉列表