0

ノックアウト Js ドロップダウンが WebAPI サービスからの値で読み込まれない

コードは以下の通りです、私を助けてください。

これは、ドロップダウンのノックアウト js 呼び出しです。

<select data-bind="options: menus, optionsText: 'text', optionsValue: 'pk_smartMenuID',  optionsCaption: 'Choose...'"></select>

Web API 呼び出し

    // GET api/SmartMenu
    public IEnumerable<SmartMenu> GetSmartMenus()
    {
        var smartmenus = _db.SmartMenus.Include(s => s.ParentSmartMenu);
        return smartmenus.AsEnumerable();
    }

これは、Web API サーバー呼び出しに接続するビュー モデル (スクリプト) です。

@section Scripts { 
@Scripts.Render("~/bundles/jqueryval") 
@Scripts.Render("~/bundles/knockout") 

<script type="text/javascript">
    function MenuViewModel() {
        var self = this;
        var baseUri = '@ViewBag.ApiUrl';
        self.menus = ko.observableArray([]);
        self.selectedMenu = ko.observable();

        self.addMenu = function(formElement) {
          // If valid, post the serialized form data to the web api 
          $(formElement).validate();
          if ($(formElement).valid()) {
            $.post(baseUri, $(formElement).serialize(), null, "json")
            .done(function(o) { self.menus.push(o); });
          }
        };

        $.getJSON(baseUri, self.menus);
      }

      $(document).ready(function() {
        ko.applyBindings(new MenuViewModel());
      });
</script> 
} 
4

1 に答える 1

0

json データは Linkedlist にあり、反復する必要があるため、 http: //knockoutjs.com/documentation/json-data.html で答えを得ました。

于 2013-01-10T13:57:27.070 に答える