如何在MVC3中使用HTML帮助程序构建html

如何在MVC3中使用HTML帮助程序构建html,第1张

概述我是这样的帮手,我使用原始 HTML在里面创建了这个,如下所示: private static readonly Core Db = new Core(); // Main menupublic static MvcHtmlString MainMenu(){ IQueryable<Page> primaryPages = Db.Pages.Where(p => p.I 我是这样的帮手,我使用原始 HTML在里面创建了这个,如下所示:

private static Readonly Core Db = new Core();        // Main menupublic static MvcHTMLString MainMenu(){    Iqueryable<Page> primaryPages = Db.Pages.Where(p => p.IsItShowInMenu);    var sb = new StringBuilder();    sb.Clear();     string pagecode = Convert.ToString(httpContext.Current.Request.RequestContext.RouteData.Values["url"]);    sb.Append("<div ID=\"logo\">");    sb.Append("<a href=\"/\"><span ID=\"logo_Text\">Dr. Shreekumar</span></a> <span ID=\"logo_Sub_Text\">Obstetrician & Gynecologist</span>");    sb.Append("</div>");    sb.Append("<div ID=\"Primary_Menu\">");    sb.Append("<ul>");    foreach (Page page in primaryPages)    {        if (page.PageCode != "Home")        {             Page currentPage = Db.Pages.SingleOrDefault(p => p.PageCode == pagecode);             if (currentPage != null)             {                  Page parentPage = Db.Pages.Find(currentPage.ParentID);                  if (parentPage != null)                  {                      sb.AppendFormat((page.PageCode == parentPage.PageCode ||                      page.PageCode == currentPage.PageCode)                      ? "<li class=\"active\"><a href=\"/pages/{0}\">{1}</a></li>"                        : "<li><a href=\"/pages/{0}\">{1}</a></li>",page.PageCode,page.name.Trim());                  }                  else                  {                     sb.AppendFormat("<li><a href=\"/pages/{0}\">{1}</a></li>",page.name);                  }              }              else              {                  sb.AppendFormat("<li><a href=\"/pages/{0}\">{1}</a></li>",page.name);              }        }    }    sb.Append("</ul>");    sb.Append("</div>");    return new MvcHTMLString(sb.ToString()); }

任何人都可以建议我如何使用MVC HTML助手(锚点,列表(li),div等帮助)转换它

解决方法 作为应用程序的架构师,您需要定义帮助程序生成的内容以及不应该生成什么内容,这是您角色的重要组成部分,因为它取决于代码中重复的位置和频率.我不打算告诉你构建助手的原因,因为这取决于整个应用程序的体系结构.但是,为了帮助您做出决定,请考虑您可以构建的两种常规类型的帮助程序:全局和本地.

全局帮助程序用于代码块,这些代码通常在您的站点上重复,可能会有一些小的更改,可以通过传递不同的参数来处理.本地助手执行相同的工作,但对于给定页面是本地的.具有重复代码段的页面应该实现本地帮助程序.接着…

全局助手:创建一个新的静态类来包含助手.然后,在容器类中创建如下所示的静态方法:

public static MvcHTMLString MyHelper(this HTMLHelper helper,(the rest of your arguments here)){    // Create your HTML string.    return MvcHTMLString.Create(your string);}

这样做是在HTML助手类上创建一个扩展方法,它允许您使用标准HTML访问助手.句法.请注意,您必须在要使用自定义帮助程序的任何文件中包含此类的命名空间.

本地帮助程序:当您希望帮助程序在单个视图中是本地帮助时,另一种执行帮助程序的方法.也许你在一个视图中有一段代码被反复重复.您可以使用以下语法;

@helper MyHelper(){    // Create a string    @MvcHTMLString.Create(your string here);}

然后,您可以使用以下命令将其输出到页面:

@MyHelper()

我们总是创建MvcHTMLString对象的原因是因为作为MVC中内置的安全功能,输出的字符串被编码为在页面上的文本中显示.这意味着<将被编码,以便您实际看到“<”在页面上.默认情况下不会启动HTML标记. 为了解决这个问题,我们使用MvcHTMLString类,它绕过了这个安全功能,并允许我们直接将HTML输出到页面.

总结

以上是内存溢出为你收集整理的如何在MVC3中使用HTML帮助程序构建html全部内容,希望文章能够帮你解决如何在MVC3中使用HTML帮助程序构建html所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1063286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存