Pregunta

Acabo de empezar a usar Atributerouting con mi aplicación ASP.NET MVC3. Comencé con los controladores -no- en absoluto. (Nueva aplicación MVC3 vacía)

Luego hice un área. (llamó: Documentation)

Luego agregué un controlador (llamado: DocumentationController)

Entonces he hecho esto ..

[RouteArea("Documentation")]
public class DocumentationController : Controller
{
    [GET("Index")]
    public ActionResult Index()
    {
        return View();
    }
}

Y la siguiente ruta, funciona: /documentation/index

Pero, ¿cómo puedo hacer que estas dos rutas funcionen?

1 - / <- (ruta predeterminada / sin ruta específica especificada) 2- /documentation <- No se agregó la sección de la subruta de 'Índice'.

¿Se puede hacer esto con Atributerouting?

ACTUALIZAR:

Sé cómo hacer esto con la estructura ASP.NET MVC3 predeterminada, etc. Lo que estoy tratando de hacer es resolver esto a través de Attributerouting en su lugar.

¿Fue útil?

Solución

Supongo que quiere que los "/" y "/documentación" se asignen a DocumationController.index, ¿sí? Si es así, haz esto:

[RouteArea("Documentation")]
public class DocumentationController : Controller
{
    [GET("Index", Order = 1)] // will handle "/documentation/index"
    [GET("")] // will handle "/documentation"
    [GET("", IsAbsoluteUrl = true)] // will handle "/"
    public ActionResult Index()
    {
        return View();
    }
}

Un poco de explicación:

  • Get ("índice") tiene orden = 1 para marcarlo como la ruta principal para la acción. Debido a cómo funciona la reflexión, no hay forma de determinar el orden de los atributos en una acción sin usar la propiedad del pedido. Mira aquí
  • Puede asignar múltiples rutas Get a una sola acción. Mira aquí
  • La propiedad IsabSoluteURL le permite anular los prefijos de URL agregados por los atributos de rutearea y ruteprefix. Entonces esa ruta final coincidirá con las solicitudes raíz. Mira aquí

Espero que esto ayude. Si mi suposición inicial de lo que está tratando de hacer es incorrecto, por favor comente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top