html - 如何根据 ViewModel 的值启用/禁用按钮?

标签 html asp.net button razor model-view-controller

在将 ViewModel 传递给 View 之前,我将以下值设置到 ActionMethodViewModel 中:

if(toDateNullEntries.Count > 0)
{
    locationsHistoryVM.IsOpen = false;
}
else
{
    locationsHistoryVM.IsOpen = true;
}

在我的 View 中,我有以下 Button,它从一开始就被禁用

<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> 

现在,如果 ViewModelIsOpen 值为 true,我想启用它。如果没有,我希望它保持禁用。我该怎么做?

编辑

我尝试通过 ViewBag 发送 IsOpen 值,然后我用 jQuery 按以下方式检查该值:

if(@ViewBag.IsOpen === "false"){
    $('#LocateSubmitButton').removeAttr("disabled");

})

但是,在这种情况下,我遇到了以下错误:

Uncaught ReferenceError: False is not defined

在执行 Inspect Element 时,我看到代码正在尝试比较 False === false

我不想继续使用 ViewBag 的原因是因为我知道这是一个不好的做法,我想使用 ViewModel。有没有办法使用 ViewModel 实现相同的功能?

最佳答案

您可以使用条件属性:

<button disabled="@(Model.IsOpen == false)">SAVE</button>

如果条件评估为true,则该属性将存在,​​否则将不存在。

关于html - 如何根据 ViewModel 的值启用/禁用按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49562257/

相关文章:

html - html5 拖动事件中的 X 和 Y 值在浏览器之间不一致

javascript - 验证没有表单标签的 Html 5 输入?

javascript - 如何防止Android浏览器上的键盘改变页面的高度?

css - 用于响应式图像的 HTML 图片或 srcset

javascript - 'Sys' 是未定义的 javascript 错误

javascript - 如何在每个屏幕上找到特定位置?

java - 如何在按钮递增时乘以 textview 的值?

css - 使用 CSS 的 Formtastic 提交按钮样式

java - 单击按钮更改图标。 java

c# - ASPX : Redirect, 删除 QueryString 但不在浏览器中创建历史记录