Asp.net mvc 在ASP.NET MVC中更改所选选项卡图像的最简单方法是什么?
我见过这个问题,但我不确定这是不是一个最佳的解决方案 我想看看其他人是如何在ASP.NET MVC中处理视图/控制器中的选项卡选择的Asp.net mvc 在ASP.NET MVC中更改所选选项卡图像的最简单方法是什么?,asp.net-mvc,navigation,tabs,Asp.net Mvc,Navigation,Tabs,我见过这个问题,但我不确定这是不是一个最佳的解决方案 我想看看其他人是如何在ASP.NET MVC中处理视图/控制器中的选项卡选择的 在ASP.NET MVC中实现可选选项卡的最简单方法是什么?我希望避免使用javascript方法,以允许未启用js的浏览器仍能看到所选选项卡。编辑:在上面划掉它,这不是我所做的,这是我使用的两种方法的无效组合 我必须在一页上处理两个不同地方的状态。第一种方法是将CSS添加到视图中,以将选项卡更改为正确的样式。我必须做的第二件事是使用ViewData给我一个变量,
在ASP.NET MVC中实现可选选项卡的最简单方法是什么?我希望避免使用javascript方法,以允许未启用js的浏览器仍能看到所选选项卡。编辑:在上面划掉它,这不是我所做的,这是我使用的两种方法的无效组合 我必须在一页上处理两个不同地方的状态。第一种方法是将CSS添加到视图中,以将选项卡更改为正确的样式。我必须做的第二件事是使用ViewData给我一个变量,我将该变量传递给我编写的助手,以便在视图的head部分输出CSS,以指示特定于on状态的页面(如果这有意义的话,类似于在产品页面上突出显示类别) 因此,在我看来,我有以下两条线:
<% var onState = ViewData["OnState"].ToString(); %>
<%= Html.OutputOnState(onState) %>
这很好地完成了我的目标。CSS是硬编码到helper中的,因为这是一个小站点,所以我确信有更好的方法来实现这一点。我做了一些类似于下面过于简化的示例;-) 控制器:
public ActionResult Index()
{
ViewData["MainMenuOn"] = "Home";
return View();
}
public ActionResult About()
{
ViewData["MainMenuOn"] = "About";
return View();
}
public ActionResult Contact()
{
ViewData["MainMenuOn"] = "Contact";
return View();
}
视图:
那么你的css应该相当简单
ul#main-menu li
{
background: green;
}
ul#main-menu li.on
{
background: blue;
}
有很多方法可以剥这只猫的皮。。。根据您的需要,我将开始寻找实现HtmlHelper扩展的不同方法
嗯,,
查尔斯
public static string MainMenuOn(this HtmlHelper html, string menuItem)
{
if ((html.ViewData["MainMenuOn"] != null) && (html.ViewData["MainMenuOn"] == menuItem))
return "on";
return "";
}
ul#main-menu li
{
background: green;
}
ul#main-menu li.on
{
background: blue;
}