Como enviar dados de volta ao controlador no MVC usando nocaute

Eu tenho o seguinte código:

Index.cshtml:

@using System.Web.Script.Serialization
@model MvcApplication3.Models.Person

<script src="../../Scripts/knockout-2.1.0.js" type="text/javascript"></script>

    <!-- This is a *view* - HTML markup that defines the appearance of your UI -->


<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>


<script type="text/javascript">

    var initialData = @Html.Raw(new JavaScriptSerializer().Serialize(Model));

    // This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
    function AppViewModel() {
        this.firstName = ko.observable(initialData.FirstName);
        this.lastName = ko.observable(initialData.LastName);

    }

    // Activates knockout.js
    ko.applyBindings(new AppViewModel());

</script>

InícioController:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication3.Models;

namespace MvcApplication3.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            var people = new PeopleEntities();

            var person = people.People.First();

            return View(person);
        }

        [HttpPost]
        public ActionResult Index(Person person)
        {
            //Save it

            return View();
        }
    }
}

Basicamente, o que isto faz é carregar uma pessoa do banco de dados e usar o knockout faz campos editáveis ​​para o primeiro e último nome. Ele carrega os valores nos campos

Isso funciona bem.

No entanto, não tenho certeza de como postar as alterações de volta ao controlador para salvar. Eles teriam que ser desserializados e colocados de volta no modelo, depois postados de volta. Nao tenho certeza de como fazer isso.

Qualquer ajuda?

questionAnswers(1)

yourAnswerToTheQuestion