我想通過實現從我的視圖界面回到我的控制器行動的許多類之一。我在我的視圖中使用ActionLink將實例傳遞給我的動作,但它自然失敗,因爲MVC無法通過默認模型綁定處理接口。MVC - 界面作爲控制器動作參數
所以:
<%=Html.ActionLink(flow.Source.Name, "Get", new {container=flow.Source})%>
是一個循環,並且每個flow.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,並且每個實體都有一個映射在表上的實體,所以有一個用於File,另一個用於Worksheet,因此需要能夠決定使用哪個數據訪問類。合理?可能不會!
這樣做可以不移向基類Container嗎?我可以堅持一個接口傳遞給我的操作方法,並解決代替接口傳遞的子類型實例嗎?
任何與此有關的幫助將不勝感激。