首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Html.RenderPartial呈现派生的部分视图

使用Html.RenderPartial呈现派生的部分视图
EN

Stack Overflow用户
提问于 2010-03-18 18:41:40
回答 1查看 1.1K关注 0票数 1

如果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

代码语言:javascript
复制
class MyDerivedControl : System.Web.Mvc.ViewUserControl
{
    public Method()
    {
        ViewData["SomeData"] = "test";
    }
}

有解决办法吗,还是有别的办法我应该这么做?也许是HTML助手?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-19 07:18:09

从MVC的角度来看,让您的视图提供数据并不是一个好的设计。通常这是控制器的责任。根据上下文和这些数据所代表的内容,您可以使用HTML助手或写操作筛选器。下面是一个使用自定义操作筛选器的示例:

代码语言:javascript
复制
public class SomeDataActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
        filterContext.Controller.ViewData["SomeData"] = "test";
    }
}

然后用这个过滤器装饰你的动作:

代码语言:javascript
复制
[SomeDataActionFilter]
public ActionResult Index()
{
    return View();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2472460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档