Question

How do I redirect to a route without getting a query string on my URL?

Route configuration...

routes.MapRoute(
    name: "ApplicationStatus",
    url: "join/ApplicationStatus/{applicationKey}/{characterId}",
    defaults: new { controller = "Join", action = "ApplicationStatus" }
);

Controller code to redirect...

    return RedirectToAction("ApplicationStatus", new { 
        applicationKey = applicationKey,
        characterId =_sm.JoinState.CharacterId
    });

Controller action method...

public ActionResult ApplicationStatus(string applicationKey, long characterId)
{
    return View(new ApplicationStatus());
}

So when I am redirected from the controller the browser gives me the following url...

http://localhost/TestApp/Join/ApplicationStatus?applicationKey=xxxxxxx&characterId=nnnnnnnn

but I would like to get this...

http://localhost/TestApp/Join/ApplicationStatus/xxxxxxx/nnnnnnnn

Thanks in advance.

Was it helpful?

Solution

You should use RedirectToRoute.

Try this instead.

    return RedirectToRoute("ApplicationStatus", new { 
        applicationKey = applicationKey,
        characterId =_sm.JoinState.CharacterId
    });
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top