Asp.net mvc 如何将模型传递给视图?

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

我看了演讲后才开始看,它看起来很有希望

我可以理解如何将模型作为json传递回控制器并更新/保存模型,但如何将模型传递给视图并使其可见

例如,如果我有以下类:

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调用,也无需在控制器端进行额外的转换