Dean
Dean

Reputation: 1550

Problem With Html.ActionLink Not Including Parameters (MVC3)

I am having an issue with Html.ActionLink not giving me the link I was expecting.

Here is my route:

routes.MapRoute(
    "KnownCustomer", // Route name
    "{controller}/{action}/{custId}/{projId}", // URL with parameters
        new { controller = "Home", action = "Index" }, // Parameter defaults
    new { custId = @"\d+", projId = @"\d+" }
);

Here is my call to Html.ActionLink()"

@Html.ActionLink("Create New", "Create", "Conflict")

Here is the URL of the page that the ActionLink exists on: http://localhost:1283/Conflict/Index/1200/300 Here is the result of the call to the above Html.ActionLink() http://localhost:1283/Conflict/Create

Shouldn't the call include the other route parameters? What I was expecting was http://localhost:1283/Conflict/Create/1200/300

Do I need to pass the custId and projId in to the View and use an overload to supply the values manually?

Upvotes: 7

Views: 17525

Answers (1)

Lazarus
Lazarus

Reputation: 43064

You've not specified that the action link should have any parameters, in that case it's a straight URL to the action. You need to include the parameters, i.e.

@Html.ActionLink("Create New", "Create", "Conflict", new { custID = Model.custID, projID  = Model.projID }, null)

Upvotes: 11

Related Questions