Я хочу настроить маршрут в ASP.NET MVC. С участием
@Url.Action("ViewDoc", "Home", new { FileName = "ABC.pdf" })
А также
routes.MapRoute(
name: "",
url: "{controller}/{action}/{FileName}",
defaults: new
{
controller = "Home",
action = "ViewDoc",
FileName = UrlParameter.Optional
}
Я получил
http://localhost/Home/ViewDoc?FileName=ABC.pdf
Как получить ниже?
http://localhost/Home/ViewDoc/ABC.pdf
3 ответа
Я смог получить
localhost/Home/ViewDoc/ABC.pdf
С участием
public FileResult View(string FileName) {
А также
routes.MapRoute( "", "Home/ViewDoc/{FileName}", new { controller = "Home", action = "ViewDoc" } );
Для ошибки 404.0 добавлено следующее под
<add
name="AdfsMetadata"
path="/Home/ViewDocu/*"
verb="POST"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
Код, который вы вставили, правильный, но порядок в настройке маршрута, вероятно, неправильный. Переместите метод routes.MapRoute
так, чтобы он находился выше маршрута по умолчанию, и он должен работать должным образом.
Что касается вашей ошибки 404:
Я использую такой же URL-адрес с именем файла в конце и получаю ту же проблему с маршрутизацией. Как и вы, я пытаюсь поймать звонок с помощью контроллера.
Я думаю, проблема в том, что URL-адрес рассматривается как прямая ссылка на файл на сервере, и он просто попытается получить файл вместо вызова контроллера. Если файл не будет найден в физическом расположении, предложенном URL-адресом, возникнет ошибка 404.
Обходной путь, который я решил использовать, - это добавить символ «/» в самом конце URL-адреса после имени файла. Есть и другие.
Я предлагаю вам прочитать этот связанный с этим вопрос: Точки в URL-адресе вызывают ошибку 404 с ASP.NET mvc и IIS
Похожие вопросы
Связанные вопросы
Новые вопросы
asp.net-mvc
ASP.NET MVC Framework - это платформа и инструмент веб-приложений с открытым исходным кодом, которые реализуют версию шаблона модель-представление-контроллер (MVC), адаптированную к веб-приложениям и построенную на основе технологии ASP.NET.