我想知道在運行時(到ViewPage)添加ViewUserControl是否存在任何已知問題。它工作正常,如果我添加控件聲明,但不是如果我以編程方式添加控件(在這種情況下,在代碼後面的文件)。我沒有收到錯誤,它只是不呈現控件,但是通過調試程序確實確認頁面生命週期中的相關方法正在被調用。動態添加ASP.NET MVC中的ViewUserControl
我的確意識到在ASP.NET MVC文件後面使用代碼並不是很清楚,但我確實有理由想要這樣做。
我想知道在運行時(到ViewPage)添加ViewUserControl是否存在任何已知問題。它工作正常,如果我添加控件聲明,但不是如果我以編程方式添加控件(在這種情況下,在代碼後面的文件)。我沒有收到錯誤,它只是不呈現控件,但是通過調試程序確實確認頁面生命週期中的相關方法正在被調用。動態添加ASP.NET MVC中的ViewUserControl
我的確意識到在ASP.NET MVC文件後面使用代碼並不是很清楚,但我確實有理由想要這樣做。
發送您要加載的控件列表並將其傳遞給視圖模型。
控制器動作:
var controlsToLoad = new List<string>();
controlsToLoad.Add("foo");
return View(controlsToLoad);
查看:
<% foreach (var control in Model as List<string>) { %>
<% Html.RenderPartial(control); %>
<% } %>
這將讓你擺脫後面的代碼,仍然讓你在它控制在視圖中加載控制器動態指定。
或者,如果您需要其他功能,您可以將上述建議以擴展方法包裝到您的ViewPage類的擴展方法中。
嗨John, 感謝您的快速響應。這是唯一的方法嗎?我希望能夠創建任意數量的某個PartialView類的實例,每個實例都有不同的數據。 – 2009-06-02 19:43:51
創建一個具有兩個屬性的DTO:字符串ControlName和對象Data然後創建這些列表並在循環中使用RenderPartial(ControlName,Data);傳遞控制特定的數據。 – 2009-06-02 20:24:17