Asp.net mvc 如何将模型传递给视图?
我看了演讲后才开始看,它看起来很有希望 我可以理解如何将模型作为json传递回控制器并更新/保存模型,但如何将模型传递给视图并使其可见 例如,如果我有以下类:Asp.net mvc 如何将模型传递给视图?,asp.net-mvc,asp.net-mvc-3,knockout.js,Asp.net Mvc,Asp.net Mvc 3,Knockout.js,我看了演讲后才开始看,它看起来很有希望 我可以理解如何将模型作为json传递回控制器并更新/保存模型,但如何将模型传递给视图并使其可见 例如,如果我有以下类: public class Person { public string FirstName { get; set; } public string LastName { get; set; } } 我可以使用JsonResult将其作为json从我的控制器中传递,因此我可以向我的视图发送如下内容: { firs
public class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
}
我可以使用JsonResult将其作为json从我的控制器中传递,因此我可以向我的视图发送如下内容:
{
firstName : "Bob",
lastName : "Jones"
};
现在,如何使属性可见,并在代码中使其成为viewModel
$.ajax({
url: 'Home/GetUserData',
type: 'post',
success: function (data) {
viewModel = ko.mapping.fromJS(data);
viewModel.save = function () { sendToServer(); };
ko.applyBindings(viewModel);
}
});
您还需要使用映射插件
注意ko.mapping.fromJS(数据);这是从mvc端点获取模型,并为可观察性做好准备。我没有使用ko.mapping插件。我认为映射插件是双向的(这不是你的情况) 我已经声明了一个Html帮助程序>
public static string ToJson(this object obj)
{
var serializer = new JavaScriptSerializer();
return serializer.Serialize(obj);
}
它将我的服务器端模块序列化为客户端大小的JSON,并在客户端声明它。接受的答案使用JQuery。这很好,但不是必需的。见:
以下是一篇帮助我的文章: 它展示了一种绑定viewmodel的方法,无需ajax调用,也无需在控制器端进行额外的转换