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

时间:2018-03-29 17:46:14

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

在将ViewModel传递给ActionMethod之前,我在ViewModel的{​​{1}}中设置了以下值:

View

在我的视图中,我从头开始有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> 的{​​{1}}值为enable,我想IsOpen。如果没有,我希望它保持ViewModel。我怎么能这样做?

修改

我尝试通过true发送disabled值,然后按以下方式使用IsOpen检查值:

ViewBag

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

  

未捕获的ReferenceError:未定义False

在执行jQuery时,我发现代码正在尝试比较if(@ViewBag.IsOpen === "false"){ $('#LocateSubmitButton').removeAttr("disabled"); })

我不想继续Inspect Element的原因是因为我知道这是一种不好的做法,我想使用False === false。有没有办法使用ViewBag实现相同的工作?

2 个答案:

答案 0 :(得分:0)

以下内容根据模型中的值输出“禁用”条件:

<button type="submit" value="Create" class="btn bgm-orange waves-effect mybtn" id="LocateSubmitButton" @if (!Model.IsOpen) { <text>disabled</text> }>SAVE</button>

如果你想使用ViewBag做的尝试,它将如下所示:

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

注意,项目周围的引号使得比较在运行时变为“False”===“False”。

答案 1 :(得分:0)

您可以使用条件属性:

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

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