Model

    public class Coordinate
    {
        public double[] CoordinateArray { get; set; }
    }

Przykład 1
Widok jest silnie typowany, ale nie zwracam żadnego modelu do widoku. Normalnie pomyślałbym, że zwracany w takim wypadku jest null (w sensie model w widoku ma wartość null), ale wtedy powinien chyba zostać rzucony wyjątek NullReferenceException w 6 linijce w widoku. Co przekazuje kontroler do widoku w tym przykładzie?

Kontroler

        public ActionResult Coordinate()
        {
            return View();
        }

Coordinate.cshtml

@model IList<MyProgram.Models.Coordinate>
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@Html.EditorFor(x => x[0].CoordinateArray[0])
@Html.EditorFor(x => x[0].CoordinateArray[1])
@Html.EditorFor(x => x[1].CoordinateArray[0])

Przykład 2
Po naciśnięciu przycisku OK powinniśmy dostać widok z trzema polami tekstowymi z następującymi wartościami:
pole 1: 97
pole 2: 98
pole 3: wartość jaką podaliśmy przed naciśnięciem przycisku OK
Dostaję jednak we wszystkich polach wartości takie, jakie podałem przed naciśnięciem przycisku OK. Metoda Coordinate z atrybutem [HttpPost] zwraca instancję obiektu z "dobrymi" danymi, czyli cList[0].CoordinateArray[0] == 97, cList[0].CoordinateArray[1] == 98, cList[1].CoordinateArray[0] == to co wpisaliśmy w widoku w trzecim polu. Dlaczego zatem te dane nie są wyświetlane w widoku? Przecież model, który zwracamy w kontrolerze powinien zostać przekazany do widoku i wyświetlony w nim, a okazuje się, że jednak nie w tym przypadku. Gdzie są zapamiętywane te dane wyświetlane w widoku?

Kontroler

        public ActionResult Coordinate()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Coordinate(List<Coordinate> cList)
        {
            cList[0].CoordinateArray[0] = 97;
            cList[0].CoordinateArray[1] = 98;

            return View(cList);
        }

Widok

@model IList<MyProgram.Models.Coordinate>
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@using (Html.BeginForm("Coordinate", "Home", FormMethod.Post))
{
    @Html.EditorFor(x => x[0].CoordinateArray[0])
    @Html.EditorFor(x => x[0].CoordinateArray[1])
    @Html.EditorFor(x => x[1].CoordinateArray[0])

    <input type="submit" name="btnOK" value="OK" />
}