当前位置: 首页>>代码示例>>C#>>正文


C# HtmlHelper.RenderAction方法代码示例

本文整理汇总了C#中HtmlHelper.RenderAction方法的典型用法代码示例。如果您正苦于以下问题:C# HtmlHelper.RenderAction方法的具体用法?C# HtmlHelper.RenderAction怎么用?C# HtmlHelper.RenderAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HtmlHelper的用法示例。


在下文中一共展示了HtmlHelper.RenderAction方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RenderActionToString

        public static string RenderActionToString(this HtmlHelper helper, HttpRequest request, string controller, string action)
        {
            //Create memory writer
            var sb = new StringBuilder();
            var memWriter = new StringWriter(sb);

            //Create fake http context to render the view
            var fakeResponse = new HttpResponse(memWriter);
            var fakeContext = new HttpContext(request, fakeResponse);
            var fakeControllerContext = new ControllerContext(
                new HttpContextWrapper(fakeContext),
                helper.ViewContext.RouteData,
                helper.ViewContext.Controller);

            var oldContext = HttpContext.Current;
            HttpContext.Current = fakeContext;

            //Use HtmlHelper to render partial view to fake context
            var html = new HtmlHelper(new ViewContext(fakeControllerContext,
                new FakeView(), new ViewDataDictionary(), new TempDataDictionary(), memWriter),
                new ViewPage());
            html.RenderAction(action, controller);

            //Restore context
            HttpContext.Current = oldContext;

            //Flush memory and return output
            memWriter.Flush();
            return sb.ToString();
        }
开发者ID:priceLiu,项目名称:bigpipe,代码行数:30,代码来源:RendererHelper.cs

示例2: RenderTemplate

		public void RenderTemplate(ContentItem item, HtmlHelper helper)
		{
			RouteValueDictionary values = GetRouteValues(helper, item);

			if (values == null)
				return;

			var currentPath = helper.ViewContext.RouteData.CurrentPath();
		    try
		    {
                try
                {
                    var newPath = currentPath.Clone(currentPath.CurrentPage, item);
                    helper.ViewContext.RouteData.ApplyCurrentPath(newPath);
                    helper.RenderAction("Index", values);
                }
                finally
                {
                    helper.ViewContext.RouteData.ApplyCurrentPath(currentPath);
                }
		    }
		    catch (Exception ex)
		    {
                Logger.Error("RenderTemplate " + currentPath, ex);
				throw;
		    }
		}
开发者ID:grbbod,项目名称:drconnect-jungo,代码行数:27,代码来源:TemplateRenderer.cs

示例3: Replace

        public string Replace(HttpContextBase httpContext, ControllerContext controllerContext, string input)
        {
            Stopwatch sw = Stopwatch.StartNew();

            //Use HtmlHelper to render partial view to fake context
            var html = new HtmlHelper(new ViewContext(controllerContext,
                new FakeView(), new ViewDataDictionary(), new TempDataDictionary(), new StringWriter()), new ViewPage());

            foreach (var m in PartialAction.Matches(input).Cast<Match>())
            {
                string action = m.Groups["action"].Value;
                string controller = m.Groups["controller"].Value;
                object routeValues = null;
                if (m.Groups["area"].Success)
                {
                    string area = m.Groups["area"].Value;
                    if(!string.IsNullOrEmpty(area))
                    {
                        routeValues = new {area};
                    }
                }

                using (var ms = new MemoryStream())
                using (var tw = new StreamWriter(ms))
                {
                    html.ViewContext.Writer = tw;

                    Stopwatch actionSw = Stopwatch.StartNew();

                    html.RenderAction(action, controller, routeValues);

                    actionSw.Stop();
                    Trace.Write(string.Format("Donut hole: {0} took {1:F2} ms.", action, actionSw.Elapsed.TotalMilliseconds));

                    tw.Flush();
                    ms.Seek(0, SeekOrigin.Begin);

                    using (var sr = new StreamReader(ms))
                    {
                        input = input.Replace(m.Value, sr.ReadToEnd());
                    }
                }
            }

            sw.Stop();

            Trace.Write(string.Format("Fill Donut Hole took {0:F2} ms.", sw.Elapsed.TotalMilliseconds));

            return input;
        }
开发者ID:endforward,项目名称:Moth,代码行数:50,代码来源:OutputSubstitutionExecutor.cs

示例4: RenderTemplate

        public void RenderTemplate(ContentItem item, HtmlHelper helper)
        {
            Type itemType = item.GetContentType();
            string controllerName = controllerMapper.GetControllerName(itemType);
            if(string.IsNullOrEmpty(controllerName))
            {
                Trace.TraceWarning("Found no controller for type " + itemType);
                return;
            }

            RouteValueDictionary values = GetRouteValues(helper, item, controllerName);

            helper.RenderAction("Index", values);
        }
开发者ID:sergheizagaiciuc,项目名称:n2cms,代码行数:14,代码来源:TemplateRenderer.cs

示例5: RenderTemplate

        public void RenderTemplate(ContentItem item, HtmlHelper helper)
        {
            Type itemType = item.GetContentType();
            string controllerName = controllerMapper.GetControllerName(itemType);
            if(string.IsNullOrEmpty(controllerName))
            {
                Trace.TraceWarning("Found no controller for type " + itemType);
                return;
            }

            RouteValueDictionary values = GetRouteValues(helper, item, controllerName);

            try
            {
                helper.ViewContext.RouteData.DataTokens[ItemOverrideKey] = item;
                helper.RenderAction("Index", values);
            }
            finally
            {
                if (helper.ViewContext.RouteData.DataTokens.ContainsKey(ItemOverrideKey))
                    helper.ViewContext.RouteData.DataTokens.Remove(ItemOverrideKey);
            }
        }
开发者ID:jhang,项目名称:n2cms,代码行数:23,代码来源:TemplateRenderer.cs

示例6: RenderTabPane

 public override void RenderTabPane(HtmlHelper<User> html, User user)
 {
     html.RenderAction("List", "UserRewardPoints", new { user });
 }
开发者ID:neozhu,项目名称:Ecommerce,代码行数:4,代码来源:RewardPointsTab.cs

示例7: RenderTabPane

 public override void RenderTabPane(HtmlHelper<Webpage> html, Webpage webpage)
 {
     html.RenderAction("Show", "WebpageComments", new { webpage });
 }
开发者ID:olegil,项目名称:Commenting,代码行数:4,代码来源:CommentingWebpageTab.cs

示例8: RenderTabPane

 public override void RenderTabPane(HtmlHelper<User> html, User user)
 {
     html.RenderAction("Show", "AuthorInfo", new {user});
 }
开发者ID:neozhu,项目名称:MrCMS,代码行数:4,代码来源:AuthorInfoUserTab.cs

示例9: RenderTabPane

 public override void RenderTabPane(HtmlHelper<Webpage> html, Webpage webpage)
 {
     html.RenderAction("Show", "Versions", new {document = webpage});
 }
开发者ID:neozhu,项目名称:MrCMS,代码行数:4,代码来源:VersionsTab.cs

示例10: RenderTemplate

            public void RenderTemplate(ContentItem item, HtmlHelper helper, TextWriter writer = null)
            {
                RouteValueDictionary values = GetRouteValues(helper, item);

                if (values == null)
                    return;

                var currentPath = helper.ViewContext.RouteData.CurrentPath();
                try
                {
                    var newPath = currentPath.Clone(currentPath.CurrentPage, item);
                    helper.ViewContext.RouteData.ApplyCurrentPath(newPath);
					if (writer == null)
						helper.RenderAction("Index", values);
					else
						writer.Write(helper.Action("Index", values));
                }
                finally
                {
                    helper.ViewContext.RouteData.ApplyCurrentPath(currentPath);
                }
            }
开发者ID:nikita239,项目名称:Aspect,代码行数:22,代码来源:PartsAdapter.cs


注:本文中的HtmlHelper.RenderAction方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。