Witam,
mam problem z ASP .NET MVC3.
Problem jest trochę bardziej złożony, uproszczę go do maksimum.
Chcę zrobić osobny formularz do wprowadzania pewnych danych, niech będa to współrzędne geograficzne, formularz ten będzie używany na wielu stronach i wyswietlany jako widok częściowy.
Chciałbym więc aby był on uniwersalny i gadał z każdym modelem który wyświetla koordynaty (np. koordynaty miast, koordynaty muzeów, koordynaty pubów itp).
Pomyślałem więc, że w każdym modelu do którego chce wprowadzić koordynaty umieszczę pole z klasą reprezentująca koordynaty, i stworzę silnie typowany widok który będzie je reprezentował widok ten poprzez @Html.Partial, będe podpinał do widoków dedykowanych do wprowadzania informacji o miastach, muzeach, pubach itd.
Problem jest jednak taki, że dane wpisane w takim widoki nie "propaguja się" do widoku/modelu nadrzędnego, czyli tego który wywołał ów widok. (Wow, trochę zakręciłem).
Przykład:
model:
public class Miasto
{
public Wspolrzedne Koordynaty { get; set; }
public string Nazwa { get; set; }
}
public class Wspolrzedne
{
public string LAT { get; set; }
public string LNG { get; set; }
}
Kontroler:
public ActionResult MiastoCreate()
{
new Miasto() {Koordynaty= new Wspolrzedne()}
}
[HttpPost]
public ActionResult MiastoCreate(OsrodekCreateVM model)
{
model.Nazwa //OK - jest wartosc
model.Wspolrzedne //jest nullem!!!!!!!
}
Widok "Create.cshtml"
@model Miasto
@using (Html.BeginForm())
{
@Html.EditorFor(model=>model.Nazwa)
@Html.Partial("Wsp", model.Koordynaty)
<input type="submit" value="DODAJ" />
}
Widok "Wsp.cshtml"
@model Wspolrzedne
@Html.EditorFor(model=>model.LAT)
@Html.EditorFor(model=>model.LNG)
Tak jak napisalem w komentarzu Wspolrzedne w modelu sa nullem, nie zostaly wypelnione.
Co zle robie?
Czy wogole idzie zrobic cos takiego, jak najlepiej osiągnąć cel?
Z góry dzięki za pomoc!
public ActionResult OsrodekCreate()
{