Рейтинг:
6
Richard Deeming
В MVC вы не ссылаетесь на Просмотры; вы ссылаетесь на действия.
Предполагая, что у вас есть NewPage
действие на вашем HomeController
:
public ActionResult NewPage()
{
return View();
}
Вы можете использовать
Url.Action
помощник для ссылки на него:
<a href='@Url.Action("NewPage", "Home")' title="Página de Prueba">TestPage</a>
Miguel Altamirano Morales
Спасибо за ваш ответ, Ричард, у меня есть ActionResult "NewPage" в моем домашнем контроллере.
Я скопировал код url.Действие, которое вы мне прислали, и я получаю ошибку " недопустимые символы в пути маршрута"
Теперь, если вы видите мой вопрос, у меня есть еще один тег href на странице aspx, которая находится в моем корневом каталоге, и у меня нет действия в homecontroller, но он отлично работает !!!
Richard Deeming
Ссылка, которая работает, - это ссылка на страницу WebForms. WebForms предварительно датирует маршрутизацию, поэтому по умолчанию вы ссылаетесь непосредственно на страницу.
С помощью MVC вы можете ссылаться только на действие, а не на представление.
Если вы получаете ошибку, дважды проверьте свой класс RouteConfig и сгенерированный URL-адрес.
Miguel Altamirano Morales
Еще раз спасибо, Ричард. Я заметил, что сгенерированный URL-адрес :
http://localhost:57687/@Url.Action(%22TestPage%22,%20%22Home%22)
Итак, я думаю, что, возможно, символы "%22 " (они должны быть кавычками) и являются причиной ошибки. Этот адрес именно так и отображается в навигаторе. Я собираюсь попытаться заменить эти символы, используя их ascii-коды в строке, или есть причина, по которой мое приложение делает это?, какая-то конфигурация или что-то еще ?.
Пожалуйста, простите меня, если я говорю слишком наивно. Это мое первое приложение MVC. Я очень хорошо понимаю,что должен углубиться в изучение этого вопроса. Я не знаю, как делать даже то, что вы говорите мужчинам.
Richard Deeming
Это странно. Вы определенно генерируете ссылку в представлении MVC или это веб-форма?
Miguel Altamirano Morales
Два тега '< a ' расположены на странице Index. aspx в папке Views/Home. Один из них указывает на страницу aspx в корневом каталоге приложения (href= ".. / .. / ViewPage1. aspx"), и она работает нормально.
Другой пытается перейти на страницу aspx в том же каталоге Views/Home, но это не удается. Изначально говорилось, что ресурс не найден ((~/Views/Home< / TestPage.aspx) и с @url.Помощник действия он генерирует недопустимые символы. Да, это связь между взглядами.
Я собираюсь углубиться в изучение этого предмета и посмотреть, смогу ли я решить эту проблему, пока буду учиться больше. Иногда такое случается.
Большое вам спасибо, Ричард !!
Richard Deeming
Так и есть Index.aspx
страница WebForms или представление MVC с использованием механизма представления ASPX?
Если это представление MVC, попробуйте:
<a href='<%: Url.Action("TestPage", "Home") %>' ...
Если это страница WebForms, попробуйте:
<a runat="server" href="~/Home/TestPage" ...
Miguel Altamirano Morales
Йеееесс !!!. Это представление MVC с использованием движка ASPX.
Я вставил код в свою разметку и работал нормально. Вы были правы с самого начала, проблема была в коде, в нем был символ"@", а не " <%".
Ну, спасибо тебе большое, Ричард, ты хороший человек. Да благословит Вас Бог, и я надеюсь снова связаться с вами.
Я приму твой ответ. Увидимся !!