1
如果MyControl.ascx是直接繼承System.Web.Mvc.ViewUserControl
的控件,則從視圖中調用Html.RenderPartial("~/Views/Payments/MyControl.ascx");
將起作用。使用Html.RenderPartial渲染派生的局部視圖
但是,如果控制繼承從System.Web.Mvc.ViewUserControl
派生新類,調用Html.RenderPartial("~/Views/Payments/MyDerivedControl.ascx");
失敗,報告說,沒有這樣的觀點存在。
例衍生System.Web.Mvc.ViewUserControl
:
class MyDerivedControl : System.Web.Mvc.ViewUserControl
{
public Method()
{
ViewData["SomeData"] = "test";
}
}
有一種解決方法,或者是有另一種方式我應該這樣做呢?也許是HTML幫手?
的觀點並沒有提供數據;我的問題是關於視圖將數據傳遞給**派生的**局部視圖以及在解釋之後嘗試顯示它時產生的錯誤(由派生的ViewUserControl類)。數據來自哪裏並不重要。 – 2010-03-20 10:57:10
@FreshCode,我不知道爲什麼會發生這種特殊的異常。我只能告訴你,視圖不應該像你試圖在MVC應用程序中那樣繼承。視圖僅用於顯示來自控制器的數據。有一些技巧,如母版頁,部分視圖,HTML助手,允許您在視圖中編寫和重用功能。在由VS生成的默認ASP.NET MVC項目模板中,甚至沒有與'ascx'控件關聯的'.cs'文件。 – 2010-03-20 11:03:09