Ну,
Давайте предположим, что у меня есть два класса Model:
public class BaseClass{
public Int32 variable {get;set;}
}
public class DerivatedClass : BaseClass{
public Int32 otherVariable {get;set;}
}
и представление с типом BaseClass в качестве Model.
Если я передам DerivatedClass вПросмотр и извлечение информации через форму, она не будет снова «преобразована» в DerivatedClass?
Проблема в том, что если я получу тип модели внутри представления (Model.GetType (). FullName),Я получаю (без сюрпризов) тип DerivatedClass.
Но когда я проверяю опубликованную модель, внутри моего контроллера я получаю BaseClass (и, очевидно, его нельзя преобразовать!)
Контроллер:
public ActionResult ViewPage(){
return View(new DerivatedClass());
}
[HttpPost]
public ActionResult ViewPage(BaseClass b){
b.GetType().FullName; //Gives me Project.packeges.BaseClass.
DerivatedClass d = (DerivatedClass)b; //Ops, It can't be done. Exception.
}
Просмотр:
@model Project.packeges.BaseClass
<h3>@Model.GetType().FullName</h3>
<!-- Gives me Project.packeges.DerivatedClass -->
...
Моя логика неверна?Есть ли способ выполнить приведение внутри контроллера после получения информации о POST?