MVC-接口作为控制器动作参数
|
我想将实现接口的许多类之一从我的视图传递回控制器动作。我在视图中使用了一个ActionLink,将实例传递给我的动作,但由于MVC无法通过默认模型绑定处理接口,因此自然会失败。
因此:
<%=Html.ActionLink(flow.Source.Name, \"Get\", new {container=flow.Source})%>
处于循环中,每个流.Source符合IContainer。
public class Flow
{
public virtual IContainer Source { get; private set; }
}
public interface IContainer
{
//members here
}
public class File : IContainer
{}
public class Worksheet : IContainer
{}
基本上我想调用一个动作方法:
public ActionResult Get(IContainer container)
{
// Do something
}
原因是我需要从数据库中检索传递给我的操作方法的当前容器的状态。我使用NHibernate,并且每个实体的表上都映射有实体,例如,对于文件来说有一个,对于工作表来说有一个,因此需要能够决定使用哪个数据访问类。合理?可能不会!
是否可以在不使用基类容器的情况下完成此操作?我可以坚持将接口传递给我的操作方法,并解决代替接口传递的子类型实例吗?
任何帮助,将不胜感激。
没有找到相关结果
已邀请:
1 个回复
谷靛