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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)