0

是否有可能将 C# 变量写入 ko.observable() 变量?例如,我有两个带有“data-bind="checked: isEvent" 的单选按钮(true 和 false)。我需要在渲染这两个单选按钮之前使用 @Model.isEvent 初始化这个 ko.observable - "isEvent" 值, 以检查正确的单选按钮。

4

2 回答 2

2

或者,您可以将模型序列化为文档头部的单个变量,然后以这种方式访问​​属性,这样您就不必在视图中包含整个视图模型。

根据您的评论,这里有一个更完整的例子来说明它是如何工作的。

在您的布局页面中:

@using Newtonsoft.Json
<!-- this should already be referenced in your project, but if not use Nuget to install it -->
<!DOCTYPE html>
<head>
    <title>Title</title>
    <script type="text/javascript">
        var model = @Html.Raw(JsonConvert.SerializeObject(Model));
        //Alternatively, you can omit any serialization, and just use:
        var isEvent = @Model.isEvent;
    </script>
    <script src="path_to_view_model.js"></script>
</head>

在您的 KO 视图模型中:

function ViewModel() {
    var self = this;
    self.isEvent = ko.observable(model.isEvent);
}
于 2013-06-18T13:42:21.130 回答
1

是的你可以。

isEvent = ko.observable(@Model.isEvent);

这将生成以下 javascript:

isEvent = ko.observable(true);
于 2013-06-18T13:36:45.683 回答