代码之家  ›  专栏  ›  技术社区  ›  BuddyJoe

ASP.NET MVC相当于来自ASP.NET WebForms的“重写void Render”

  •  3
  • BuddyJoe  · 技术社区  · 15 年前

    什么是ASP.NET MVC等价于从ASP.NET WebForms中“重写void Render”?

    例如,我不会在生产代码中使用它,但演示了如何清理 <title> <head>

        protected override void Render(HtmlTextWriter writer)
        {
            System.IO.StringWriter sw = new System.IO.StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            base.Render(htw);
            htw.Close();
            string h = sw.ToString();
            string fhtml = h.Replace("<title>\r\n\t", "\n<title>")
                                 .Replace("\r\n</title>", "</title>")
                                 .Replace("</head>","\n</head>");
            // write the new html to the page
            writer.Write(fhtml);
        }
    

    在ASP.NET MVC中,使用最终文本呈现的最佳方法是什么?

    更新:

    2 回复  |  直到 15 年前
        1
  •  4
  •   Thomas    15 年前

    这不是MVC的工作方式。

    所有“onprerender”代码都在视图中完成。当您将数据从控制器传递到视图时,您应该已经完成了显示整个页面所需的所有处理。

    这可能包括设置partials打开或关闭自身所需的变量等。

        2
  •  0
  •   Tomas Aschan    15 年前

    据我所见,你唯一想做的就是 Render() -方法是重新排列 <head> MVC ,除非您使用一些自制的方法来创建 <头部> -您的 Masterpage .

    我建议按你希望的方式把标签直接对准 html 你的标记 Master ,并确保 ViewData["title"]