【问题标题】:Html. ActionLink: Passing CSS class and Id at the same time [closed]html。 ActionLink:同时传递 CSS 类和 Id [关闭]
【发布时间】:2017-12-17 12:42:44
【问题描述】:

所以,这就是我尝试的方式。

<td>@Html.ActionLink("Sprawdź","Details","Home",null,  new { @item.Id, @class = "btn btn-info" })</td> 

但是当我这样做时,我得到了 Argument 异常,因为 ActionLink 没有传递 Id。当我切换 null 值和匿名类的位置时,代码可以工作,但不应用类。我们将不胜感激。

【问题讨论】:

    标签: c# asp.net-mvc routing


    【解决方案1】:

    所以,我试着让它工作

     <td>@Html.ActionLink("Sprawdź","Details","Home", new { @item.Id }, new {@class = "btn btn-info" })</td>
    

    创建了两个匿名类,第一个通过 Id,第二个通过类。我离开这个话题,也许有人会觉得这很有帮助:)

    【讨论】:

      【解决方案2】:

      它不起作用,因为在第 4 个参数上,ActionLink 正在寻找 object RouteValues,这基本上意味着这个值将被传递到您的控制器上。下一个参数(第 5 个)是 object HTMLAttributes,它将是您的链接元素的 HTML 属性:

      public static MvcHtmlString ActionLink(
      this HtmlHelper htmlHelper,
      string linkText,
      string actionName,
      string controllerName,
      object routeValues, -- for passing values on your controller
      object htmlAttributes -- for html attributes like css, etc.
      )
      

      所以你需要把它改成:

      <td>@Html.ActionLink("Sprawdź","Details","Home", new { intID = @Model.YourPropertyIdName }, new { @Id = Model.YourPropertyIdName, @class = "btn btn-info" })</td> 
      

      在您的控制器上,它应该与参数名称上的属性名称匹配。

      如您所见,我在 ActionLink 上传递了 intID,因此它也应该在您的控制器上匹配

      public ActionResult Details(int intID = 0)
      {
        //TODO:
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-09
        • 2011-08-27
        • 1970-01-01
        • 1970-01-01
        • 2011-03-16
        • 2020-06-29
        相关资源
        最近更新 更多