我是 MVC 的新手,所以如果有什么不合理的地方,我会提前道歉。
我有一个基类(比如说“Person”)和 2 个派生类(“Student”、“Professor”)。
我想为创建功能使用 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");
}