0
Я хочу следующий вид URL для моего приложения@ Html.ActionLink для пользовательских маршрутизации
Так я создал пользовательский маршрут и достичь таким образом в какой-то акцент. Но теперь проблема заключается в том, как я могу создать эту URL-форму ActionLink.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Custom",
url: "{content}",
defaults: new { controller = "Content", action = "Index" },
namespaces: new[] { "Some.Web.Controllers" },
constraints: new { IsContent = new IsContentPage() }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Some.Web.Controllers" }
);
}
}
URL Ограничить
public class IsContentPage : IRouteConstraint
{
public bool Match
(
HttpContextBase httpContext,
Route route,
string parameterName,
RouteValueDictionary values,
RouteDirection routeDirection
)
{
var enumlist = Enum.GetValues(typeof(Common.Content)).Cast<Common.Content>().Select(v => v.ToString().ToLower()).ToList();
var keysValue = values.Select(x => x.Value.ToString().ToLower()).FirstOrDefault();
Int32 isContent = enumlist.Where(x => x == keysValue).Count();
if (isContent > 0)
{
return true;
}
return false;
}
}
Теперь, как я могу генерировать ссылку как http://domain/content