我有以下课程:
class SomethingBase
{
public string SharedProperty { get; set; }
}
class ChildClassOne : SomethingBase
{
public string SpecificPropertyOne { get; set; }
}
class ChildClassTwo : SomethingBase
{
public string SpecificPropertyTwo { get; set; }
}
我有 ASP.NET MVC 视图,它有两个 HTML 表单。这些表单调用相同的操作方法。此操作方法应接收两个SomethingBase
类派生项中的任何一个。但是,如果我创建像 一样的单个参数SomethingBase param
,那么只会SharedProperty
收到 。这种行为可以通过 ASP.NET MVC 的绑定机制来解释。
为了使我的操作方法起作用,我创建了下一个定义:
public ActionResult(ChildClassOne param1, ChildClassTwo param2)
SharedProperty
转到这两个参数,但仅为对象填充特定属性,该对象实际上是从视图中传递的。它有效,但我认为这不是唯一的解决方案。
是否有针对这种情况的最佳实践解决方案?