У меня есть веб-приложение, которое мне нужно для маршрутизации URL-адреса, например: http://example.com/1234567890 к стандартному контроллеру «Home» и действию «Index» (/Home/Index).
Я только что поместил другой MapRoute в модуль RouteConfig? -- что-то типа:
routes.MapRoute(
name:="Clients",
url:="{tendigits:int}",
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}
)
Очевидно, что вышеизложенное не работает, отсюда и причина моего вопроса. Заранее спасибо! (ВБ.NET 4.6)
РЕДАКТИРОВАТЬ:
Я получаю 404 с вышеуказанным. Такие изменения, как следующие STILL отображают 404:
routes.MapRoute(
name:="Clients",
url:="{controller}/{action}/{id}",
defaults:=New With {.controller = "Home", .action = "Index", .id = "\d(10)"}
)
РЕДАКТИРОВАНИЕ №2 Это весь код файла Route.Config:
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.Mvc
Imports System.Web.Routing
Public Module RouteConfig
Public Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapMvcAttributeRoutes 'added
routes.MapRoute(
name:="Clients",
url:="{tendigits}",
defaults:=New With {.controller = "Home", .action = "Index"},
constraints:=New With {.tendigits = "\\d{10}"}
)
routes.MapRoute(
name:="Default",
url:="{controller}/{action}/{id}",
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}
)
End Sub
End Module
2 ответа
Просто замените строку url:="{tendigits:int}"
на url:="{id}"
, все остальное выглядит нормально.
По прихоти я решил попробовать другой синтаксис, который оказался успешным (по крайней мере, на данный момент):
routes.MapRoute(
name:="Clients",
url:="{tendigits}",
defaults:=New With {.controller = "Home", .action = "Index", .tendigits = ""},
constraints:=New With {.tendigits = "\d{10}"}
)
Если кто-то видит что-то не так с этим подходом, который я могу упустить, сообщите, пожалуйста.
Похожие вопросы
Новые вопросы
asp.net-mvc
ASP.NET MVC Framework - это платформа и инструмент веб-приложений с открытым исходным кодом, которые реализуют версию шаблона модель-представление-контроллер (MVC), адаптированную к веб-приложениям и построенную на основе технологии ASP.NET.
routes.MapRoute( name: "Clients", url: "{tendigits}", defaults: new { controller = "Home", action = "Index" }, constraints: new { tendigits = "\\d{10}" } );
Он должен передать 10 цифр, иначе выдаст 404routes.MapRoute( name:="Clients", url:="{tendigits}", defaults:=New With {.controller = "Home", .action = "Index"}, constraints:=New With {.tendigits = "\\d{10}"} )
Я думал, что нужен только один "\", но, возможно, я ошибаюсь...<Route("{tendigits:regex(^\d{10}$)}")> Function Index(ByVal tendigits As Integer) As ActionResult Return View() End Function