如何根据事件在ViewDataDictionary中分配变量?

时间:2016-11-01 09:26:37

标签: javascript jquery asp.net-mvc-4

我将部分视图呈现为:

<div>
    @Html.Partial("/_PartialView.cshtml", null, new ViewDataDictionary { { "ControllerName", "Controller1" }, { "Attribute1", Model.Attribute1 }, { "Attribute2", Model.Attribute2 }, { "isSelected", "isTrue" } })
</div>

我需要更改isSelected键的此值,并根据是否选中了复选框为其指定true或false。

$('#checkBox1').click(function () {
    if ($('#checkBox1').is(':checked')) {
        // set isSelected to true here
    } else {
        // set isSelected to false here
    });

如何在isSelected中设置_PartialView.cshtml的值并相应地呈现不同的部分视图?如果我能以某种方式将此值设置为true或false,我只需使用if条件来隐藏或显示所选的html元素。

感谢。

修改

这就是我访问Partial中的变量的方式;

 @{
        var att1 = (int)ViewData["Attribute1"];
        var att2= (int)ViewData["Attribute2"];
        var controller = (string)ViewData["ControllerName"];
        var isSelected = (bool)ViewData["isSelected"];
    }

HTML代码的一部分:

<div>
    <li>
    <button><span class="glyphicon glyphicon-upload"></span> Upload </button>
    </li>
    <li>
    <button><span class="glyphicon glyphicon-upload"></span> Download </button>
    </li>
    @if(isSelected)
     {
      @*Display this button*@
      <li>
      <button><span class="glyphicon glyphicon-upload"></span> Delete </button>
      </li>
     }
</div>

1 个答案:

答案 0 :(得分:0)

这可能看起来很荒谬,但是我可以直接从主视图本身访问部分视图中的按钮,因为它在同一个HTML页面中呈现,并且是一个简单的$(#id).hide()$(#id).show()帮助我实现了目标。

但是,问题仍然存在,如果要使用ViewData传递不在视图模型中的变量,该怎么办?

此外,对于布尔变量,它会有什么不同吗?