Как правильно установить связь между различными видами

89
10

У меня есть master.cshtml с панелью навигации. Моя первая ссылка относится к другому виду, ProjectManagement


<li><a href="~/Views/ProjectManagement.cshtml">Project Management</a></li>

master.cshtml находится в /Views/Shared/_master.cshtml


ProjectManagement находится в /Views/ProjectManagement.cshtml


Всякий раз, когда я нажимаю на ссылку, я получаю:


Описание: HTTP 404. Ресурс, который вы ищете (или его зависимости), мог быть удален, изменилось его имя или временно недоступно. Просмотрите следующий URL-адрес и убедитесь, что оно написано правильно.

Запрошенный URL:/Views/ProjectManagement.cshtml



Я использую неправильный путь или я должен попытаться получить доступ к странице по-другому?


Изменить: Мне удалось приблизиться, используя это:


<a href="@Html.Action( "ProjectMgmt", "Service", "Project Management" )">

Единственная проблема заключается в том, что теперь она помещает страницу в мою панель навигации! Я только хочу, чтобы он ссылался на страницу, что я мог делать на этот раз?

спросил(а) 2021-01-25T16:02:40+03:00 4 месяца, 3 недели назад
1
Решение
76

Вы не ссылаетесь непосредственно на представления, вы ссылаетесь на действия. Действия выполняются как методы на контроллере; эти методы расположены с использованием системы маршрутизации.


Пример контроллера:


public class ServicesController : Controller 
{
[HttpGet]
public ActionResult ProjectManagement()
{
// automatically locates the correct view; you can also explicitly
// pass the path to the view
return View();
}
}

Теперь вы можете щелкнуть правой кнопкой мыши имя метода действия ( "ProjectManagement" ) и выбрать "Добавить вид". Это поможет вам создать новое представление и поместить его в место, которое может автоматически найти механизм просмотра.

Представления обычно помещаются в папку "Views/[ControllerName]/", например. "Views/Услуги/ProjectManagement.cshtml".


Чтобы связать этот метод действий с вашей навигационной панелью, вы можете использовать вспомогательный метод ActionLink().


<li>@Html.ActionLink( "Project Management", "ProjectManagement", "Services" )</li>

Смотрите также: Контроллеры и маршрутизация

ответил(а) 2021-01-25T16:02:40+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема