ActionLink with multiple parameters

前端 未结 3 1284
猫巷女王i
猫巷女王i 2020-12-14 00:51

I want to create a URL like /?name=Macbeth&year=2011 with my ActionLink which I have tried doing like so:

<%= Html.ActionLi         


        
相关标签:
3条回答
  • 2020-12-14 01:29

    In addition to Mikael Östberg answer add something like this in your global.asax

    routes.MapRoute(
        "View Details",
        "Performances/Details/{name}/{year}",
        new {
            controller ="Performances",
            action="Details", 
            name=UrlParameter.Optional,
            year=UrlParameter.Optional
        });
    

    then in your controller

    // the name of the parameter must match the global.asax route    
    public action result Details(string name, int year)
    {
        return View(); 
    }
    
    0 讨论(0)
  • 2020-12-14 01:31

    The overload you are using makes the year value end up in the html attributes of the link (check your rendered source).

    The overload signature looks like this:

    MvcHtmlString HtmlHelper.ActionLink(
        string linkText, 
        string actionName, 
        string controllerName, 
        object routeValues, 
        object htmlAttributes
    )
    

    You need to put both your route values in to the RouteValues dictionary like this:

    Html.ActionLink(
        "View Details", 
        "Details", 
        "Performances", 
        new { name = item.show, year = item.year }, 
        null
    )
    
    0 讨论(0)
  • 2020-12-14 01:40

    Based on Mikael Östberg answer and just in case people need to know how it does with html attr. Here is another example, reference from ActionLink

    @Html.ActionLink("View Details", 
    "Details", 
    "Performances", 
      new { name = item.show, year = item.year }, 
      new {@class="ui-btn-right", data_icon="gear"})
    
    
    @Html.ActionLink("View Details", 
    "Details", 
    "Performances", new RouteValueDictionary(new {id = 1}),new Dictionary<string, object> { { "class", "ui-btn-test" }, { "data-icon", "gear" } })
    
    0 讨论(0)
提交回复
热议问题