0
Ich habe die folgende AktionMVC RedirectToAction nicht versteckt Parameter
public ActionResult TemplateBuilder(int id, int? processId) { }
Und dann habe ich die folgende
@Url.Action("TemplateBuilder","InspectionTemplate")/id/processId
Die URL dann wie folgt aussieht: InspectionTemplate/TemplateBuilder/1/2
Aber wenn ich
return RedirectToAction("TemplateBuilder","InspectionTemplate", new { id=1, processId = 2});
Dann bekomme ich folgendes Ergebnis: InspectionTemplate/TemplateBuilder/1?processId=2
Wie kann ich das beheben?
Hier ist mein Routing
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "IDRoute",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = "Login",
action = "Index",
id = UrlParameter.Optional
}
);
routes.MapRoute(
name: "ProcessRoute",
url: "{controller}/{action}/{id}/{processId}",
defaults: new
{
controller = "InspectionTemplate",
action = "TemplateBuilder",
id = UrlParameter.Optional,
processId = UrlParameter.Optional
}
);
routes.MapRoute(
name: "DateRoute",
url: "{controller}/{action}/{year}/{month}/{day}",
defaults: new
{
controller = "Inspection",
action = "Assign",
year = UrlParameter.Optional,
month = UrlParameter.Optional,
day = UrlParameter.Optional
}
);
}
entfernen 'id = UrlParameter.Optional,' von der 'ProcessRoute' (nur der letzte Parameter kann optional sein) und ändern Sie ihn auf' url: „InspectionTemplate/{ action}/{id}/{processId} "," so ist es spezifisch und verschiebe es auf die erste Route (die Reihenfolge ist wichtig) –
Es hat nicht funktioniert :( –
Nevermind, es funktionierte vergessen, es an die Spitze zu bewegen. Als Antwort hinzufügen, damit ich es akzeptieren kann. –