2011-03-07 71 views
0

我正在使用MVC3和Spark。Spark:LI IF條件下的類聲明

我需要的,如果一定ViewBag元素被設置爲X.

<li id="menu-home" class="active?{ViewBag.Active=='home'}" >${Html.ActionLink("Home", "Index", "Site")}</li> 

像上面的類添加到LI。這不工作,但想知道是否有辦法來解決這個問題?

回答

3

下面是我的步驟和它的工作對我來說:

  1. 創建使用默認的模板和Razor視圖引擎
  2. 安裝Spark.Web.Mvc3 NuGet包一個新的ASP.NET MVC 3項目。
  3. 變化HomeControllerIndex動作看起來像這樣:

    public ActionResult Index() 
    { 
        ViewBag.Active = "home"; 
        return View(); 
    } 
    
  4. 重命名~/Views/Home/Index.cshtml~/Views/Home/Index.spark,使它看起來像這樣:

    <li id="menu-home" class="active?{ViewBag.Active == 'home'}"> 
        ${Html.ActionLink("Home", "Index", "Site")} 
    </li> 
    
  5. 運行該項目

  6. 生成的HTML是:

    <li id="menu-home" class="active"> 
        <a href="/Site">Home</a> 
    </li> 
    

注:每次我使用,而不是與視圖模型我覺得在指出這是一種不好的做法義務強類型的意見ViewBag有人看到。