ajax呼び出しからselectタグをロードしようとしています。 select文をロードすることができますが、値を代入しようとすると失敗します。助けてくれてありがとう!MVCノックアウトタグ値の割り当てを選択します。
HTMLコード
<select data-bind="value: state, options: allStates, optionsText: 'name', optionsValue: 'abbreviation', optionsCaption:'Please pick a state...'" class="form-control" id="state" name="state"></select>'
var cSource = function (data) {
var self = this;'
self.state = ko.observable(data.state);
self.allStates = ko.observableArray([]);
// get the list of states from the server
$.getJSON('@Url.Action("AllStates", "Home")', function(myData) {
// myDate is a list of states
self.allStates(myData);
});
var modelData = @Html.Raw(Json.Encode(Model)); // does not contain a list of states
mySource = new cSource(modelData);
ko.applyBindings(mySource);
C#オブジェクト
public static List<cStates> usStates()
{
List<cStates> myStates = new List<cStates>();
myStates.Add(new cStates() { abbreviation = "AL", name = "ALABAMA" });
myStates.Add(new cStates() { abbreviation = "AK", name = "ALASKA" });
....
return myStates;
}
コントローラ
public ActionResult AllStates()
{
return Json(ChoiceProducts.States.BLL.cStates.usStates(), JsonRequestBehavior.AllowGet);
}
javascript jsonオブジェクトから状態をロードすると、それが動作します。
var states = [{"name": "Alabama","abbreviation": "AL"},{"name": "Alaska",
"abbreviation": "AK"},.....
self.state = ko.observable(data.state);
self.allStates = ko.observableArray(states);
ajax呼び出しの状態を更新しようとしていますか?または、値がページの読み込みに割り当てられないと言っていますか? –
どうすれば失敗しますか?コンソールにエラーを表示してください –
この値はページの読み込みに割り当てられません。 self.state = ko.observable(data.state); //この行は機能しません – TheWiz