Способ эвакуации вызова в asp.net mvc с атрибутом route - Маршрутизация в asp.net mvc
Все, что я хочу, 2 пути для вызова действий. например
http://localhost:16800/Content1/1/text
а также
http://localhost:16800/Content1/1
и мой routeconfig является маршрутизацией по умолчанию. Я использую из атрибута маршрута.
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
а мой контроллер использовал атрибут маршрута так:
namespace WebApplication2.Controllers
{
[RoutePrefix("Content1")]
[Route("{action=Index}")]
public class Content1Controller : Controller
{
[Route("{id}/{text}")]
public ActionResult Index(int id, string text)
{
return View();
}
}
} Теперь этот способ работает для меня. http://localhost:16800/Content1/1/text
и этот способ не работает для меня. http://localhost:16800/Content1/1
Я просто использую оба способа для вызова моего действия. Напомни, что я использую [Route("{action=Index}")]
на моем контроллере не нужно указывать имя действия в моем URL.
1 ответ
Try this, It will work(tested).
namespace WebApplicationExamples.Controllers
{
[RoutePrefix("Content1")]
[Route("{action=Index}")]
public class Content1Controller : Controller
{
// GET: Content1
[Route("{id}")]
[Route("{id}/{text}")]
public ActionResult Index()
{
return View();
}
}
}