gpt4 book ai didi

c# - 如何使用MVC4在部分 View 中调用HtmlHelper方法

转载 作者:行者123 更新时间:2023-12-02 15:05:00 26 4
gpt4 key购买 nike

我是 Mvc4 的新手。基本上我想要创建具有菜单和子菜单的动态选项卡。

这是我的 Htmlhelper 类:

namespace DBMvc.Htmlhlpr
{
public static class HtmlHelperExtension
{
public static String ParentMenus(this HtmlHelper html, IEnumerable<menu> Menu)
{
string htmlOutput = string.Empty;
if (Menu.Count() > 0)
{
htmlOutput += "<ul class='sf-menu'>";
var Mainmenu = from mainMenu in Menu where mainMenu.Catid == null select mainMenu;
foreach (menu m in Mainmenu)
{
htmlOutput += "<li>";
htmlOutput += LinkExtensions.ActionLink(html, m.Depname, null);
htmlOutput += SubMenus(html, Menu, m.Depid);
htmlOutput += "</li>";

}
htmlOutput += "</ul>";
}
return htmlOutput;
}
private static string SubMenus(this HtmlHelper html, IEnumerable<menu> SubMenu, int Catid)
{
string htmlOutput = string.Empty;
var subMenu = from sm in SubMenu where sm.Depid ==Catid orderby sm.cats select sm;
if (subMenu.Count() > 0)
{
htmlOutput += "<ul>";
foreach (menu m in subMenu)
{
htmlOutput += "<li>";
htmlOutput += LinkExtensions.ActionLink(html, m.Depname, null);
htmlOutput += SubMenus(html, SubMenu, m.Catid);
htmlOutput += "</li>";
}
htmlOutput += "</ul>";
}
return htmlOutput;}}}}

我的 Controller 是:

public class FrontController : Controller
{
// MenuEntities MEnt = new MenuEntities();
NewDatabaseEntities Db = new NewDatabaseEntities();
// menu MEnt = new menu();
// [ChildActionOnly]
public ActionResult Menu()
{
var mMenu = Db.Dep_Table.ToList();
return PartialView(mMenu)
}
}

在部分 View 中,我想使用 @Html.Raw 调用 htmlhelper 方法“ParentMenus”。我不知道该怎么做。

最佳答案

有两件事:

  1. 我建议更改您的 HTML Helper 以返回包含 HTML 的 HtmlString。然后您可以避免使用 @Html.Raw(),这几乎总是一种不好的做法(尽管它有其目的)。

  2. 在 Razor View 页面(CSHTML 文件)中,将 @using DBMvc.Htmlhlpr 放在文件顶部,以确保已导入帮助程序命名空间。然后调用助手使用@Html.ParentMenus(...)

第 1 项并不是绝对必要的,但它是所有内置 HTML 帮助程序所做的事情,并且通常是一个很好的做法。

如果不是这样,请指出您遇到的错误(如果有)。

关于c# - 如何使用MVC4在部分 View 中调用HtmlHelper方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25519186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com