You should use RedirectToRoute
.
Try this instead.
return RedirectToRoute("ApplicationStatus", new {
applicationKey = applicationKey,
characterId =_sm.JoinState.CharacterId
});
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.
Solution
You should use RedirectToRoute
.
Try this instead.
return RedirectToRoute("ApplicationStatus", new {
applicationKey = applicationKey,
characterId =_sm.JoinState.CharacterId
});