0
我試圖綁定選擇並表的AJAX調用在ASP.NET與後端的EntityFramework未來對象的結果。
下面是腳本:綁定knockoutjs/ASP.NET中的映射與EF對象
<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>
這裏查看:
<select data-bind="options: quizList,
optionsText: function(quiz) { return quiz.Name() + '(Id: ' + quiz.IdQuiz() + ')'},
optionsCaption: 'Select a quiz...'"></select>
我已經通過我得到的對象從我的JSON回調調試驗證。我也已經驗證了「quizList」觀察到有ko.mapping.fromJS調用後的值。但是,我的選擇中沒有顯示任何內容。我甚至沒有得到「optionsCaption」值。
我可以在直接結合EF對象(從DB產生)?
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);
}
感謝這裏是從parsedJsonQuizzes的輸出的console.log回來幫幫我!
根據我所見過的所有例子,你不需要這樣做: https://docs.microsoft.com/en-us/aspnet/core/client-side/knockout 雖然,我做了嘗試你的解決方案,不幸的是它沒有工作。 – Joe