Javascript 通过检查模型中的布尔值来显示元素
我想根据名为Javascript 通过检查模型中的布尔值来显示元素,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我想根据名为status的模型中的bool值显示引导标记,如accepted、rejected。这里的问题是,我尝试使用jquery来实现它,但它要么全部显示,要么全部隐藏。所以我猜它无法读取状态值。我打开了开发工具,没有错误。我需要指导。我感谢你的帮助 @for (int i = 0; i < Model._Requests.Count(); i++) { <
status
的模型中的bool值显示引导标记,如accepted、rejected。这里的问题是,我尝试使用jquery来实现它,但它要么全部显示,要么全部隐藏。所以我猜它无法读取状态值。我打开了开发工具,没有错误。我需要指导。我感谢你的帮助
@for (int i = 0; i < Model._Requests.Count(); i++)
{
<tr>
<td>
@Html.DisplayFor(x => Model._Requests[i].Account_Name)
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].LOB)
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].Operation_Date)
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].Employee_no)
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].Fulfillment_Rate)
</td>
<td>
<span name="badge" class="badge badge-warning" id="pend">WTF</span>
</td>
<!--for the accept button-->
@using (Html.BeginForm("Add_Fulfillment_Accept", "TBL_Request", FormMethod.Post))
{
@Html.AntiForgeryToken()
<td>
<button id="btnAccept" class="btn btn-success" name="a_button" type="submit" value="true">Accept</button>
@Html.Hidden("Request_ID", Model._Requests[i].Request_ID)
@Html.Hidden("Status", Model._Requests[i].Status, new { id = "myEdit", value = "" })
</td>
}
<!--for the reject button-->
@using (Html.BeginForm("Add_Fulfillment_Reject", "TBL_Request", FormMethod.Post))
{
@Html.AntiForgeryToken()
<td>
<button id="btnReject" class="btn btn-danger" name="button" data-toggle="modal" data-target="#exampleModal" type="button" value="false">Reject</button>
@Html.Hidden("Request_ID", Model._Requests[i].Request_ID)
@Html.Hidden("Status", Model._Requests[i].Status, new { id = "myEdit", value = "" })
</td>
<!--this is the note modal of the reject button -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">New message</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
@Html.TextArea("Note", Model._Requests[i].Note, htmlAttributes: new { @class = "form-control" })
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<input type="submit" value="submit" class="btn btn-success" id="finalSave" />
</div>
</div>
</div>
</div>
}
</tr>
}
</tbody>
</table>
我想展示的徽章
<span name="badge" class="badge badge-warning" id="pend">WTF</span>
WTF
如果之后状态没有改变,只需在cshtml中为该项动态设置一些类即可
<span name="badge" class="badge badge-warning @{Model.Status ? "visible" : "invisible"}" id="pend">WTF</span>
WTF
如果它确实发生了变化,您必须触发该值变化的事件才能使用javascripthi访问模型值,@wahwah我遇到了这篇文章,但我的问题是我的模型是ViewModel,其中有一个列表。所以我不能直接访问状态。谢谢✌我可以问一下触发它是什么意思吗?你是说用js编写一个函数,就像我在文章中展示的那样?Status允许null,我这样写的
Status???
由于第三个问号,它给了我错误。如何指定它允许null。提前感谢@{Model.Status.GetValueOrDefault()?“可见”:“不可见”}
GetValueOrDefault
如果状态为null,将返回false。触发意味着在这种情况下,您必须在应用程序中的某个位置添加onchange
事件处理程序,并在调用事件时管理徽章的外观。早上好,我在使用.GetValueOrDefault()后尝试运行它。有一个编译错误显示应为代码>。我试着把它放在不同的地方,但不起作用。对于触发器,我使用了这个,但是我还没有测试它`$('span')。触发器('change');`。感谢您的建议。以下代码WTF
不会对我产生任何错误。
<span name="badge" class="badge badge-warning @{Model.Status ? "visible" : "invisible"}" id="pend">WTF</span>