Routing verwenden Ich bin url bekommen wie http://localhost:49671/TestRoutes/Display?f=hi&i=2
Wie nur Name in url statt id in mvc.net anzuzeigen
Ich möchte es wie http://localhost:49671/TestRoutes/Display/hi
ich es von Index-Methode aufrufen.
[HttpPost]
public ActionResult Index(int? e)
{
// return View("Display", new { f = "hi", i = 2 });
return RedirectToAction("Display", new { f = "hi", i = 2 });
}
Index Ansicht
@model Try.Models.TestRoutes
@using (Html.BeginForm())
{
Model.e = 5 ;
<input type="submit" value="Create" class="btn btn-default" />
}
Display Aktion Methode
// [Route("TestRoutes/{s}")]
public ActionResult Display(string s, int i)
{
return View();
}
Routenkonfigurationsdatei
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Professional", // Route name
"{controller}/{action}/{id}/{name}", // URL with parameters
new { controller = "TestRoutes", action = "Display", s = UrlParameter.Optional, i = UrlParameter.Optional
});
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional
});
Sie Route Definitionen müssen übereinstimmen die Parameternamen - '" TestRoutes/Display/{s}/{i} "' (und nur der letzte Parameter kann 'UrlParameter.Optional' sein) –
Ich kann es nicht richtig codieren, kann ich Attribute anstelle von Maproute-Sache verwenden ? – Nil
Was funktioniert nicht? Es muss nur 'routes.MapRoute (Name:" Professional ", URL:" TestRoutes/Anzeige/{s}/{i} ", neu {controller =" TestRoutes ", action =" Display "}) sein;'. Aber in Ihrer 'Index()' Methode muss es sein 'return RedirectToAction (" Anzeige ", neu {s =" hi ", i = 2});' (nicht 'f') –