0
如果我想更新模型,表面不會更新,但模型已經。Mvc dotnet核心淘汰賽模型不更新UI
保存方法後,模型更新,但不是圖形界面。
有誰知道我如何更新模型,以便視圖也可以進行更改。
查看:
var model = ko.mapping.fromJS(@Html.Raw(this.Model));
var code = document.getElementById("editor-area");
var editor = CodeMirror.fromTextArea(code, {
lineNumbers: true,
matchBrackets: true,
mode: "text/x-csrc",
lineWrapping: true,
theme: 'the-matrix'});
model.save = function() {
model.CurrentSnippet.Code(editor.getValue());
var url = "/Snippet/Save";
$.ajax({
url: url,
method: "POST",
data: { viewModel: ko.toJS(model.CurrentSnippet)},
}).done(function(response) {
model = ko.mapping.fromJS(ko.mapping.fromJSON(response));
}).fail(function(jqXHR, textStatus) {
alert("fail: " + textStatus);
});
}
var bindContainer = document.getElementById("editor");
ko.applyBindings(model, bindContainer);
控制器:
public IActionResult Save(ViewModelSnippet viewModel)
{
var model = Mapper.MappeViewModelSnippetZuSnippet(viewModel);
_snippetRepository.Save(model);
var returnModel = JsonConvert.SerializeObject(new ViewModelSnippets { Selection = Guid.NewGuid(), Snippets = Mapper.MappeSnippetsZuViewModelSnippets(_snippetRepository.GibAlleSnippets()) , CurrentSnippet = viewModel});
return Json(returnModel);
}
Chrome檢查/控制檯:
型號befor節約:節約
{CurrentSnippet: {…}, __ko_mapping__: {…}, Selection: ƒ, Snippets: ƒ, save: ƒ, …}
CurrentSnippet
:
{SnippetId: ƒ, Name: ƒ, Description: ƒ, Code: ƒ, Modified: ƒ}
Selection
:
ƒ c()
Snippets
:
ƒ c()
clear
:
ƒ()
deploy
:
ƒ()
load
:
ƒ()
save
:
ƒ()
snippetClick
:
ƒ (data)
__ko_mapping__
:
{ignore: Array(0), include: Array(1), copy: Array(0), observe: Array(0), mappedProperties: {…}, …}
__proto__
:
Object
後:
{CurrentSnippet: {…}, __ko_mapping__: {…}, Selection: ƒ, Snippets: ƒ}
CurrentSnippet
:
{SnippetId: ƒ, Name: ƒ, Description: ƒ, Code: ƒ, Modified: ƒ}
Selection
:
ƒ c()
Snippets
:
ƒ c()
__ko_mapping__
:
{mappedProperties: {…}, ignore: ƒ, include: ƒ, copy: ƒ, observe: ƒ, …}
__proto__
:
Object
謝謝它的工作原理:您 可以根據這個新的數據更新視圖模型 –