作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将当前 Route 放入我的导航 Controller 中,以便在填充导航菜单数据时运行比较。
我的链接对象是这样的:
public class StreamNavLinks
{
public string Text { get; set; }
public RouteValueDictionary RouteValues { get; set; }
public bool IsSelected { get; set; }
}
<% Html.RenderAction(
"MenuOfStreamEntries", // action
"Nav", // controller
new { // parameters for action
currentStreamUrl = "Blog",
currentRoute = ViewContext.RouteData } // get route data to compare in controller
); %>
currentRoute
中获取任何数据。 .获取值的最佳技术是什么或
currentRoute
?
currentRoute.Values.routevaluename
currentRoute.Values[0]
var current = RouteData["streamUrl"];
var current = this.RouteData["streamUrl"];
Error 1 Cannot apply indexing with [] to an expression of >type 'System.Web.Routing.RouteData' C:\pathtocontroller\NavController.cs 25 27
routes.MapRoute(null, "", // Only matches the empty URL (i.e. ~/)
new
{
controller = "Stream",
action = "Entry",
streamUrl = "Pages",
entryUrl = "HomePage"
}
);
routes.MapRoute(null, "{streamUrl}/{entryUrl}", // matches ~/Pages/HomePage
new { controller = "Stream", action = "Entry" }
);
最佳答案
您不需要将路由数据传递给 Controller ,因为 Controller 已经通过 RouteData
了解了它。属性(property):
public ActionResult Index() {
// You could use this.RouteData here
...
}
<%= Html.RenderAction(
"MenuOfStreamEntries",
"Nav",
new {
currentStreamUrl = "Blog",
currentAction = ViewContext.RouteData.Values["action"],
currentController = ViewContext.RouteData.Values["controller"]
}
); %>
public ActionResult Nav(string currentAction, string currentController)
{
...
}
关于asp.net - 在 ASP.NET MVC 2 中 - 如何将路由值输入到我的导航 Controller 中,以便我可以突出显示当前链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660329/
我是一名优秀的程序员,十分优秀!