W Controlerach zwracamy przeważnie View(...). Jeśli nie określimy o które View nam chodzi to domyślnie brana jest nazwa controlera. W View możemy również określić o który dokładnie View nam chodzi np. View("Moje_View"). Ale w View możemy przekazywać również Model, który może być również stringiem np. View("zmienna_string").
Moje pytanie brzmi: Jak ASP.NET rozpoznaje czy przekazy parametr to nazwa vidoku czy zmienna, ktorą później będę mógł chcieć wykorzystać w widoku?
0
0
var model = "asdf";
return View(model: model);
0
Nie rozpoznaje, jeśli podasz jeden string, to uzna, że to nazwa widoku. Jeśli chcesz przekazać string jako model, to musisz wywolać wersję View(object)
czyli jawnie zrzutować ten string na object
.
Albo zrobić poprawnie, i nie używać stringa jako modela dla widoku, tylko zrobić jakąś swoją klasę.
0
@somekind wybacza za może głupie pytane, ale czy przypadkiem string nie jest również Object-em?
0
Jest, ale overloading działa tak, że szuka najlepiej dopasowanej metody do wywołania, więc jeśli jedna przyjmuje string
, a druga object
, to dla stringa wywoła się ta pierwsza.
0
Dzięki za wyjaśnienie!