0
Ich habe das folgende Stück Code in meinem Controller:Der Versuch, RESTful zu bekommen in MVC (.NET f/x 4.5.2)
[HttpGet]
[Route("Clone/{sessionId:int}")]
public ActionResult CloneContinue(int sessionId)
{
// Resume a saved Work Session...
var response = GetCachedCurrentWorkSession(sessionId);
if (response.Status >= (int) SessionStatuses.Started)
{
// ---==[ BELOW THIS IS FAILING ]==---
return RedirectToAction("Assembly", "ProductReuse", new { sessionId = response.SessionId }); // <<<=== THIS IS FAILING ===<<<
// ---==[ ABOVE THIS IS FAILING ]==---
}
return View("Clone", response);
}
Wenn er ausgeführt wird, es sendet es an:
http://localhost/My.Web/ProductReuse/Assembly?sessionId=50
Ich erwartete:
http://localhost/My.Web/ProductReuse/Assembly/50.
Irgendwelche Ideen, warum es das macht?
Die Aktion ich bin Umleitung:
[HttpGet]
[Route("Assembly/{sessionId:int}/{showResults:bool?}")]
public ActionResult Assembly(int sessionId, bool showResults = false)
{
var response = GetCachedCurrentWorkSession(sessionId);
response.ShowResults = showResults;
return View(response);
}
Mein RouteConfig.cs wie folgt aussieht:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
AreaRegistration.RegisterAllAreas();
routes.MapRoute("Default", "{controller}/{action}/{id}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional}
);
}
}
Gedanken?