0
ASP.NETでEntityFrameworkバックエンドからのオブジェクトを使用してAJAX呼び出しの結果にselectおよびtableをバインドしようとしています。EFオブジェクトを使用したASP.NETでのknockoutjs/mappingのバインド
<select data-bind="options: quizList,
optionsText: function(quiz) { return quiz.Name() + '(Id: ' + quiz.IdQuiz() + ')'},
optionsCaption: 'Select a quiz...'"></select>
私は戻って私のJSON呼び出しからオブジェクトを取得しています、デバッグを通じて確認しました:ここ
<script type="text/javascript">
function QuizListViewModel() {
var self = this;
self.quizList = ko.observableArray([]);
}
var qlvm = new QuizListViewModel();
ko.applyBindings(qlvm);
function FetchQuizzes() {
$.getJSON(
"/DesktopModules/personify/QuizAdminDos/API/QuizAdmin/QuizList",
function (result) {
var mapping = {
'observe': ["IdQuiz", "Name"]
}
parsedJsonQuizzes = jQuery.parseJSON(result);
console.log(parsedJsonQuizzes);
ko.mapping.fromJS(parsedJsonQuizzes, mapping, qlvm.quizList);
});
}
$(document).ready(function() {
FetchQuizzes();
});
</script>
が表示される:
はここでスクリプトです。私はまた、 'quizList'観測値にko.mapping.fromJS呼び出しの後に値があることを確認しました。しかし、何も私の選択に表示されていません。私は "optionsCaption"値を取得しません。
私はEFオブジェクト(DBから生成)に直接バインドできますか?ここparsedJsonQuizzesのはconsole.log出力から戻って来ているものです。
と完全な開示のために、これは私が私のAJAX呼び出しからオブジェクトを返すのですかです:用
using (var db = new LinuxDatabase())
{
List<Quiz> qzs = db.Quizs.ToList();
db.ContextOptions.LazyLoadingEnabled = false;
var json = JsonConvert.SerializeObject(qzs);
return Request.CreateResponse(HttpStatusCode.OK, json);
}
感謝助けて!
私が見たすべての例に基づいて、これを行う必要はありません。 https://docs.microsoft.com/en-us/aspnet/core/client-side/knockout あなたの解決策を試してください、残念ながら、それはうまくいかなかったのです。 – Joe