Mam następujący kod:dane umieszczania kiedy mój widok model ma konstruktora nie działa
[HttpGet]
public ActionResult Edit(int req)
{
var viewModel = new EditViewModel();
viewModel.RequestId = int;
return View(viewModel);
}
[HttpPost]
Public ActionResult Edit(EditViewModel viewModel)
{
// some code here...
}
to działa dobrze: gdy formularz edycji jest wysłane, mam kontrolera akcji, która jest tzw.
Teraz zmodyfikować niektóre małe nieco mój kod tak:
[HttpGet]
public ActionResult Edit(int req)
{
var viewModel = new EditViewModel(req);
return View(viewModel);
}
[HttpPost]
Public ActionResult Edit(EditViewModel viewModel)
{
// some code here...
}
public class EditViewModel()
{
public EditViewModel(int req)
{
requestId = req;
}
...
}
W tej nowej wersji, mam model widok z contructor.
Tym razem, kiedy mój formularz zostanie wysłany z powrotem, kontroler akcji nigdy nie jest uruchamiany.
Każdy pomysł?
Dzięki.
Dziękuję bardzo za tę dokładną odpowiedź. Powodem, dla którego chciałbym przenieść jakiś kod do konstruktora mojego modelu widoku jest utrzymanie mojego kontrolera tak lekkiego, jak to tylko możliwe. Mam dużo kodu, aby "przygotować" mój model widoku i "zanieczyścić" mojego kontrolera ... Moim pierwszym pomysłem było przeniesienie go do konstruktora mojego modelu widoku. Może to nie jest dobry pomysł ... Co myślisz? Dzięki i tak. – Bronzato
@Bronzato Mam takie same wymagania jak ty, aby przekazać jakiś obiekt w konstruktorze vm i powinien on hermetyzować sposób jego przetwarzania i ustawić własne właściwości. Czy korzystasz z powyższego rozwiązania, czy też proponujesz inne rozwiązanie, aby to rozwiązać? –
Użyłem rozwiązania sugerowanego powyżej. – Bronzato