如果Html.RenderPartial("~/Views/Payments/MyControl.ascx");是直接继承System.Web.Mvc.ViewUserControl的控件,则可以从视图调用System.Web.Mvc.ViewUserControl。
但是,如果控件继承了一个从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助手?
发布于 2010-03-19 07:18:09
从MVC的角度来看,让您的视图提供数据并不是一个好的设计。通常这是控制器的责任。根据上下文和这些数据所代表的内容,您可以使用HTML助手或写操作筛选器。下面是一个使用自定义操作筛选器的示例:
public class SomeDataActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
filterContext.Controller.ViewData["SomeData"] = "test";
}
}然后用这个过滤器装饰你的动作:
[SomeDataActionFilter]
public ActionResult Index()
{
return View();
}https://stackoverflow.com/questions/2472460
复制相似问题