在cshtml razor页面中添加knockout if语句

时间:2013-10-10 17:14:01

标签: asp.net-mvc asp.net-mvc-4 razor knockout.js

我想在标题标题之前添加if语句检查用户数。

<div>
   <span  data-bind="text:Name()"></span> 
   <span class="userCount">(<span data-bind="text:UserCount()"></span>)</span>
</div>

<script type="text/html" id="list">
    //Want to add if statement here to check if the UserCount() is greater than 13
    <h3 id="letter" data-bind="text: Letter"></h3>
    ......
</script>

如何添加if语句来检查usercount()?

视图模型:

var rViewModel = function (data) {
        var _self = this;
        _self.ContentRole = ko.observable(data.ContentRole);
        _self.Name = ko.observable(data.RoleName);
        _self.Rank = ko.observable(data.RoleRank);
        _self.UserCount = ko.observable(data.UserCount);
        _self.Users = ko.observableArray([]);
    };

4 个答案:

答案 0 :(得分:3)

@if (Model.UserCount() > 13) {
    <h3 id="letter" data-bind="text: Letter"></h3>
}

答案 1 :(得分:1)

因为你在列表中,所以上下文是列表。你需要像这样访问你的父viewModel:

$parent.UserCount() > 13

答案 2 :(得分:1)

如果在剃刀视图中声明。

@{
var a = "No";

if(a == "No")
{
//do something
}
else{
//Do something else
}

}

答案 3 :(得分:0)

如果没有看到你的淘汰模型,你应该可以做这样的事情

<!-- ko if: Users().count > 13 -->
    <h3 id="letter" data-bind="text: Letter"></h3>
<!-- /ko -->