对于我目前正在进行的项目,我目前有 2 个单独的用户实例(以后可能会增加):CorporateCustomer 和 PrivateCustomer。两者都继承自抽象类 Customer。
为了显示这些客户之间的差异,目前创建了 2 个不同的视图,它们由相同的 Action 以如下方式呈现:
[HttpGet]
public virtual ActionResult Edit()
{
if(User.IsCorporate)
return View("EditCorporate", new CorporateCustomer());
else
return View("EditPrivate", new PrivateCustomer());
}
[HttpPost]
public virtual ActionResult Edit(CorporateCustomer customer){...}
[HttpPost]
public virtual ActionResult Edit(PrivateCustomer customer){...}
对于仅显示信息,这就像一个魅力。每种类型的 url 都是相同的,这就是我们的目标。
但是,在发帖时,我只能指定一种类型,否则可能会遇到模棱两可的操作方法(当然,这是有道理的)。
现在我的问题是:是否有任何优雅的方式来处理这两种不同的类型,同时仍然保留一个 url?还是我注定要使基类非抽象并在 Request.Form 集合中查找值?
感谢是否有人能提出解决方案(或者直接指出我正在做的事情是愚蠢的,无法完成)