Вопрос

Как я могу сделать статическую ссылку в виду? (с помощью ASP.NET MVC2)

Я работаю над навигацией сайта и имею в основном 4 основных направления. Они разделены на местами, а один контроллер выглядит после всей «основной площади».

Таким образом, в основном после нажатия на главную область я хотел бы отобразить список ссылок на разные подсюда. Я создал страницы, просто щелкнув правой кнопкой мыши и добавляя представления, затем вкладывая список ссылок на них. Но как мне ссылаться с этим с <%: Html.ActionLink %> ... кажется, я не могу связать напрямую .aspxС.

редактировать:

я пытался <%: Url.Content("~/Path/to.aspx") %> И это просто выводит текст ...

редактировать: Когда я связываю напрямую к этому, просто использую <a href="......aspx">Go</a> и нажмите на нее, я получаю

Ресурс не найден.

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

Но проблема в том, что я знаю, что это определенно там.

Это было полезно?

Решение

Статические ссылки контента

Если вы связываете непосредственно к фактическим файлам (не MVC Views), чем вы можете просто статически написать их или использовать <%= Url.Content() %> Чтобы сделать их более приложенной корневой папкой.

Таким образом, определенная статическая связь с информацией о корневой папке приложения будет выглядеть так:

<a href="<%= Url.Content("~/some/folder/file.aspx") %>">Go there</a>

MVC просмотров

Но если вы ссылаетесь на представления, вы должны просто предоставить контроллер и имена действий для вашего Html.ActionLink() вызов. Он должен перевести на ваши настройки маршрутизации и в действие правильного контроллера, которое решает, какой вид (или другие слова, какие aspx) для отображения.

Просто чтобы понять: Вы не ссылаетесь на представления в MVC, потому что они запрещены от прямого доступа (проверьте web.config Файл в папке / просмотра). Вместо вас всегда Ссылка на действия контроллера, которые подают представление содержимого в качестве результата их действия.

Другие советы

Вы не можете сделать статическую ссылку на страницу просмотра, вызывая напрямую страницу ASPX, как

<a href="Views/Home/About.aspx">go</a>

Все файлы внутри папки Views недоступны по ссылке непосредственно на страницу просмотра. Если вы хотите иметь статическую ссылку на страницу просмотра, вы должны создать действие на страницу. Но Если ваша страница не находится внутри папки Views, вы можете напрямую позвонить по ссылке.

Вот пример иерархии

MVCProject
    Content
    Controllers
    Models
    StaticPages         <-- all pages in here can be accessible through a direct link <a href="/StaticPages/WebForm.aspx">go</a>
        WebForm.aspx
        |_WebForm.aspx.cs
    Views               <-- all pages in here cannot be accessed directly by calling the Relative path from a link <a href="/Views/Home/Index.aspx">go</a>
        Home
            Index.aspx
            About.aspx

Поэтому, если ваша ссылка напрямую вызывает страницу внутри Views это всегда возвращает 404. Если вы не создаете действию на этой странице и назовите ее /Controller/Action ур

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top