我是mvc的新手。所以我不确定当第一次请求页面时,会调用一个动作方法。如果我们从该动作方法传递json,那么我们如何从客户端持有json并通过knockout和bind控件解析json。
我在asp.net mvc和knockout上发现了一些文章但是那些在第一次请求时都在服务器端绑定控件,并且从后续操作中他们通过jquery调用服务器端/操作方法函数以及操作方法返回的json是什么只需用那些json解析和填充淘汰赛。
因此可以在第一次请求页面时捕获json并填充knockout视图模型。 帮助示例代码对我非常有帮助。
我们是否需要使用任何其他knockoutjs来映射json和绑定数据?感谢
答案 0 :(得分:1)
您的控制器将填充绑定到ASP.net视图的模型。然后在视图中,您将需要将c#模型序列化为json。我在这里使用json.net。然后你可以将它绑定到视图上的html。
所以如果您的C#模型是这样的:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
然后你的控制器是这样的:
public class PersonController : Controller
{
// GET: Person
public ActionResult Edit(int personId)
{
//this is where you would load the person from your data source
var person = _datasource.GetPerson(personId);
return View(person);
}
}
然后在您的视图中,您将在脚本标记中序列化为json:
$(function() {
var personModel = '@JsonConvert.SerializeObject(Model)';
ko.applyBindings(new PersonViewModel(personModel));
});
您可以将所有视图模型放在使用asp.net捆绑捆绑和缩小的javascript文件中。
这将是PersonViewModel.js
:
var PersonViewModel = function (model) {
var self = this;
self.firstName = ko.observable(model.FirstName);
self.lastName = ko.observable(model.LastName);
self.save = function () {
...
}
};