好的,我有2个模型从一个抽象类继承:
public abstract class Search
{
[Required]
public string Name{get;set;}
}
public class PageModelA : Search
{}
public class PageModelB : Search
{}
搜索页面是局部视图。
如何将这些模型中的任何一个传递给一个操作方法:
[HttpPost]
public ActionResult Search(??? search)
{}
谢谢!
答案 0 :(得分:2)
您可以创建包含两个对象的视图模型。然后只传递适当的模型并检查控制器上的null
。
class SearchModel
{
public PageModelA { get; set; }
public PageModelB { get; set; }
}
[HttpPost]
public ActionResult Search(SearchModel search)
{
if (SearchModel.PageModelA != null)
{
//Do something with PageModelA
}
else
{
//Do something with PageModelB
}
}
答案 1 :(得分:0)
此处的另一个选项是检查类型
[HttpPost]
public ActionResult Search(Search search)
{
if ((search) is PageModelA )
{
//Do something with PageModelA
}
else if ((search) is PageModelB )
{
//Do something with PageModelB
}
}