¿Cómo especificar la ubicación de la vista en asp.net core mvc cuando se usan ubicaciones personalizadas?

Digamos que tengo un controlador que utiliza enrutamiento basado en atributos para manejar una url solicitada de / admin / product de esta manera:

[Route("admin/[controller]")]        
public class ProductController: Controller {

    // GET: /admin/product
    [Route("")]
    public IActionResult Index() {

        return View();
    }
}

Ahora digamos que me gustaría mantener mis vistas organizadas en una estructura de carpetas que refleje aproximadamente las rutas de URL con las que están relacionadas. Así que me gustaría que la vista de este controlador se encuentre aquí:

/Views/Admin/Product.cshtml

Para ir más lejos, si tuviera un controlador como este:

[Route("admin/marketing/[controller]")]        
public class PromoCodeListController: Controller {

    // GET: /admin/marketing/promocodelist
    [Route("")]
    public IActionResult Index() {

        return View();
    }
}

Me gustaría que el marco busque automáticamente su vista aquí:

Views/Admin/Marketing/PromoCodeList.cshtml

Idealmente, el enfoque para informar el marco de la ubicación de la vista funcionaría de manera general en función de la información de ruta basada en atributos, independientemente de cuántos segmentos de URL estén involucrados (es decir, cuán profundamente anidada está).

¿Cómo puedo instruir al framework Core MVC (actualmente estoy usando RC1) para buscar la vista del controlador en tal ubicación?

Respuestas a la pregunta(4)

Su respuesta a la pregunta