【发布时间】:2009-12-10 16:22:53
【问题描述】:
ASP .NET MVC 1
我想显示基于模型的局部视图,并且我希望它有一个相当短的命令。所以我看到了一种同时使用 HtmlHelper 和控制器的方法(我会为此使用另一个控制器,而不是当前使用的控制器)。
但不知何故,它仍然给出了错误,尽管我认为该方法开始看起来应该如此。
那我做错了什么? (如果我直接在 ASPX 页面中调用该方法,它会成功。但应该可以使用 HtmlHelper)。
public static void RenderPartialView(this HtmlHelper html, string action, string controller, object model)
{
var context = html.ViewContext;
RouteData rd = new RouteData(context.RouteData.Route, context.RouteData.RouteHandler);
rd.Values.Add("controller", controller);
rd.Values.Add("action", action);
rd.Values.Add("model", model);
IHttpHandler handler = new MvcHandler(new RequestContext(context.HttpContext, rd));
handler.ProcessRequest(System.Web.HttpContext.Current);
}
ASCX 页面中的部分:
<% Html.RenderPartialView("Show", "Intro", Model.Intro); %>
给出的错误: 'System.Web.Mvc.HtmlHelper' 不包含'RenderPartialView' 的定义,并且找不到接受'System.Web.Mvc.HtmlHelper' 类型的第一个参数的扩展方法'RenderPartialView'(您是否缺少 using 指令还是程序集参考?)
【问题讨论】: