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
  • Вопрос задан
  • 117 просмотров
Решения вопроса 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 }

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

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

Похожие вопросы