将data-属性添加到ASP MVC @ Html.RouteLink

时间:2014-03-20 09:03:12

标签: asp.net-mvc url-routing

我想使用一个javascript库来点击我创建的链接中的data-属性。

@model IEnumerable<string>


@foreach (var link in Model)
{
    @Html.RouteLink(
      link,
      new { controller = "Product", action = "List", category = link, page = 1 },
      new
      {
          @class = link == ViewBag.SelectedCategory ? "selected" : null, 
          id= link.Replace(" ","")
      }
    )
}

我可以添加一个类和一个ID,但是当我尝试添加数据过滤器时,它会返回错误

 @class = link == ViewBag.SelectedCategory ? "selected" : null, 
      data-filter = link.Replace(" ","")
  

无效的匿名类型

2 个答案:

答案 0 :(得分:5)

您不能在属性名称中使用短划线。解决方案是使用下划线:data_filter = ...。 ASP.NET MVC会自动将下划线转换为破折号。

答案 1 :(得分:3)

@class = link == ViewBag.SelectedCategory ? "selected" : null, 
  data_filter = link.Replace(" ","")

作为D.R.已经指出,MVC可以选择以破折号转换下划线。