帮助ViewData asp.net mvc

时间:2010-01-28 00:34:55

标签: asp.net-mvc master-pages

在我的母版页面中,我有一个使用jquery ui手风琴的菜单。

指定哪个项应该处于活动状态的最佳方法是什么?我唯一能想到的是

$(document).ready(function() {
            $("#accordion").accordion({
                collapsible: true,
                autoHeight: false,
                active:<%=ViewData["active"] %>
            });          
        })

但是每次在我的整个应用程序中调用View时,似乎有点重复设置ViewData [“active”] ...你觉得怎么样?

1 个答案:

答案 0 :(得分:0)

您是否考虑过将手风琴放入PartialView?然后将代码放在PartialView中,远离母版页。

你也可以有一个可以为你设置ViewData的基本控制器,所以它现在就在一个地方。

修改

它与任何其他基类相同。您的控制器继承自Controller,因此您的基类将需要执行相同的操作;

using System.Web.Mvc;

namespace MyAppControllers
{
    public class ControllerBase : Controller
    {
        protected override void Execute(System.Web.Routing.RequestContext requestContext)
        {
            ViewData["ApplicationName"] = CacheHelper.Get().Name;
            base.Execute(requestContext);
        }
    }
}

现在将控制器类设置为从ControllerBase类继承;

public class HomeController : ControllerBase

我还实现了一个CacheHelper,但你显然可以使用自己的存储当前值的风格。