Я новичок в MVC, поэтому заранее извиняюсь, если что-то непонятно.
У меня есть базовый класс (скажем, «Человек») и 2 производных класса («Студент», «Профессор»).
Я хочу использовать 1 представление для функции создания с частичными представлениями, содержащими формы создания для студента или преподавателя. Если я добавлю параметр, я могу свериться с ним, чтобы определить, какое частичное представление показывать.
Но мой вопрос заключается в следующем: при нажатии кнопки «Создать» как я могу определить, какой объект создается?
Изменить (пожалуйста, потерпите вместе со мной, так как я создал их только для того, чтобы проиллюстрировать проблему)
Класс человека:
public class Person
{
public string Gender { get; set; }
public int ID { get; set; }
}
Студенческий класс:
public class Student : Person
{
public string LastName { get; set; }
public string FirstName { get; set; }
public List<Course> Courses { get; set; }
}
Профессорский класс:
public class Professor : Person
{
public string LastName { get; set; }
public string FirstName { get; set; }
public double AnnualSalary { get; set; }
}
Итак, мой контроллер Create выглядит так:
public ActionResult Create(int personType) //1=student, 2=professor
{
var x = new {
Student = new Student(),
Professor = new Professor()
};
ViewBag.PersonType = personType;
return View(x);
}
Тогда мой взгляд выглядит так:
<div>
@if (ViewBag.PersonType == 1)
{
@Html.Partial("CreateStudentPartialView", Model.Student)
}
else
{
@Html.Partial("CreateProfessorPartialView", Model.Professor)
}
Итак, вопрос в том, как будет выглядеть связанное действие создания, когда кнопка «Создать» нажата в любом частичном представлении?
[HttpPost()]
public ActionResult Create(....) //What would I put as parameter(s)?
{
//no idea what to do here, since I don't know what object is being passed in
return RedirectToAction("Index");
}