0

私は MVC 4 で Knockout を使用しています。私の cshtml は次のとおりです。

...
<span>@Html.RadioButtonFor(m => m.isActive, true, new { @class = "statusRadioButton", data_bind = "checked: isActive" })</span>
<span>@Html.RadioButtonFor(m => m.isActive, false, new { @class = "statusRadioButton", data_bind = "checked: isActive" })</span>
...

私のコ:

...
self.isActive = ko.observable(product.isActive);
...

データベースは正しく更新されますが、ページがロードされたときにオンになっているラジオ ボタンが表示されません。また、checked = "checked" html 属性を使用してみましたが、どちらも機能しません。何かアドバイス?

4

1 に答える 1

1

あなたのproduct.isActiveは観察可能ですか? もしそうなら、次のようなオブザーバブルを実行する必要がありますproduct.isActive()

あなたのように初期化self.isActive = ko.observable(product.isActive());することで、一度だけ設定します。

次のようにオブザーバブルに変えてみてください:

self.isActive = ko.computed(function() {
                                return product.isActive();
                             });

編集:ラジオボタンを次のように変更してみてください:

<span>@Html.RadioButtonFor(m => m.isActive, true, new { @class = "statusRadioButton", data_bind = "checked: isActive", value="true" })</span>
<span>@Html.RadioButtonFor(m => m.isActive, false, new { @class = "statusRadioButton", data_bind = "checked: isActive", value="false" })</span>

そして、isActive のブール値を文字列として使用するようにオブザーバブルを記述します。

self.isActive = ko.computed(function() {
                                return product.isActive.toString();
                             });
于 2013-05-02T14:19:37.307 に答える