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