我将部分视图呈现为:
<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>
答案 0 :(得分:0)
这可能看起来很荒谬,但是我可以直接从主视图本身访问部分视图中的按钮,因为它在同一个HTML页面中呈现,并且是一个简单的$(#id).hide()
和$(#id).show()
帮助我实现了目标。
但是,问题仍然存在,如果要使用ViewData传递不在视图模型中的变量,该怎么办?
此外,对于布尔变量,它会有什么不同吗?