LoneRay
@LoneRay
Начинающий кодировщик.

Как указать чтобы определённый Page открывался в указанном Route?

Вечер добрый. Не могу понять, как сделать чтобы при указанном Route отобразился тот самый Page, который не находится по пути по умолчанию. К примеру, когда перехожу по пути https://localhost:44388/Jvnlp, то приложение говорит, что не может найти "View" Jvnlp.cshtml, хотя оно находится по пути ~/Pages/Jvnlp.cshtml
InvalidOperationException: The view 'Jvnlp' was not found. The following locations were searched:
/Views/Views/Jvnlp.cshtml
/Views/Shared/Jvnlp.cshtml
/Pages/Shared/Jvnlp.cshtml


Это controller
5d3db062344cf970935828.png

Это как я вызываю action у controller'a
<nav>
    <div>
        <ul>
            <li>
                <a asp-area="" asp-controller="Views" asp-action="Jvnlp">ЖВНЛП</a>
            </li>
        </ul>
    </div>
</nav>


Upd: Необходимо сохранить Route https://localhost:44388/Jvnlp, но при этом чтобы по этому route открывалась View, которая находится по пути в проекте ~/Pages/Jvnlp.cshtml
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
LoneRay
@LoneRay Автор вопроса
Начинающий кодировщик.
Нашёл пока такое решение с указанием полного пути к представлению, которое не хочется как-то решением считать, но какие ещё есть способы уважаемые специалисты?
public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View("~/Views/Some/Index.cshtml");
    }
}


Всем у кого потом появится данный вопрос, то вот ответ на него. Там по ссылке ниже куча способов как можно решить данную проблему. Я использовал IViewLocationExpander
How to specify the view location in asp.net core m...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Denioo
Не доконца понял вопрос, но попробую помочь. В роуте пропиши дефолтную страницу при запуске, на mvc 5 это делается так, в классе роут конфиг:
routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Название твоей стартовой страниц", id = UrlParameter.Optional }

А вообще если все делаешь правильно то должна запускаться страница названия контроллера которая носит одноименное название.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы