在将ViewModel
传递给View
之前,我将以下值设置到ActionMethod
中:
if(toDateNullEntries.Count > 0)
{
locationsHistoryVM.IsOpen = false;
}
else
{
locationsHistoryVM.IsOpen = true;
}
在我看来,我有以下Button
,这是disabled
从一开始。
<div class="col-md-12 text-center">
<button type="submit" value="Create" class="btn bgm-orange waves-effect mybtn" id="LocateSubmitButton" disabled>SAVE</button>
</div>
现在,如果ViewModel
中的IsOpen
值是true
,我想将其enable
,否则,我想将其保持为disabled
,我该怎么做呢?
- 编辑**
我尝试通过ViewBag
发送IsOpen
值,然后使用jQuery
按以下方式检查该值:
if(@ViewBag.IsOpen === "false"){
$('#LocateSubmitButton').removeAttr("disabled");
})
但是,在这种情况下,我得到了以下错误:
未捕获引用错误:未定义False
在执行Inspect Element
时,我看到代码正在尝试比较False === false
。
我不想继续使用ViewBag
的原因是因为我知道这是一个不好的做法,我想使用ViewModel
。有没有办法使用ViewModel
实现同样的做法?
3条答案
按热度按时间nx7onnlm1#
可以使用条件属性:
如果条件的计算结果为
true
,则属性将存在,否则属性将不存在。vu8f3i0k2#
以下内容使“disabled”的输出基于模型中的值成为条件:
如果你想做你在ViewBag上尝试过的事情,它看起来会像这样:
请注意,在项周围加上引号,这样比较在运行时就变成“False”===“False”。
lqfhib0f3#
您可以通过混合一些c#和Razor代码来实现这一点,如下所示:
根据
BooleanProperty
的值,disabled
属性将被添加到按钮的HTML代码中;否则disabled
将根本不存在,并且按钮将保持启用。