我的mvc视图中有一个参数
@{
var myparam = false;
}
我的按钮位于以下视图中:
<input type="button" id="myButton" value="Click" class="btn btn-primary"
data-bind='enable: selectvalue() != ""' />
在我的按钮的数据绑定中我也想检查myparam。如下所示:
data-bind='enable: filterCategory() != "" && !myparam'
我该怎么做?
由于
更新如下:
如果我的参数如下:
@{
var myparam = false;
}
我的JS:
<script>
var myData= @Html.Raw(Json.Serialize(Model));
myData.myParameter= "@myparam ";
</script>
我的淘汰赛:
(function () {
var viewModel = function (data) {
var viemod= this;
viemod.myParam= vmData.myParam
}
}
如果我在上面的淘汰赛中使用这个myData,它会返回“False”(字符串) 而它应该是假的(布尔)
答案 0 :(得分:1)
这不起作用,因为Razor运行服务器端。 myparam
是C#
局部变量。所以,你不能在运行客户端的knockout绑定中使用它。
您可以创建一个javascript变量并分配如下值:
<script>
var myparam = @Json.Encode(myparam);
</script>
或
如果您不想污染全局范围,请在viewModel中添加myparam
属性。
var yourViewModel = function() {
var self = this;
self.myparam = @Json.Encode(myparam);
self.filterCategory = ko.observable('');
}
更新后:
如前所述,它应该是
myData.myparam = @Json.Encode(myparam);
但是,由于您将.Serialize()
整个模型,您可以将myparam
分配给控制器本身的属性。