DsJian.Mvc/MvcXmlRouting/RouteCollectionExtensions.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Routing;
using System.Web.Mvc;
using System.Collections.Specialized;
namespace DsJian.Mvc.MvcXmlRouting
{
public static class RouteCollectionExtensions
{
public static void MapRouteFromXml(
this System.Web.Routing.RouteCollection routes,
MvcRouteConfigurationSection section,
string pagePrefix)
{
// Manipulate the Ignore List
foreach(IgnoreItem ignoreItem in section.Ignore)
{
RouteValueDictionary ignoreConstraints = new RouteValueDictionary();
foreach (Constraint constraint in ignoreItem.Constraints)
ignoreConstraints.Add(constraint.Name, constraint.Value);
IgnoreRoute(routes, ignoreItem.Url, ignoreConstraints);
}
// Manipluate the Routing Table
foreach (RoutingItem routingItem in section.Map)
{
RouteValueDictionary defaults = new RouteValueDictionary();
RouteValueDictionary constraints = new RouteValueDictionary();
if (routingItem.Controller != string.Empty)
defaults.Add("controller", routingItem.Controller);
if (routingItem.Action != string.Empty)
defaults.Add("action", routingItem.Action);
foreach (Parameter param in routingItem.Paramaters)
{
defaults.Add(param.Name, param.Value);
if (!string.IsNullOrEmpty(param.ConstraintClass))
{
object constraintObj = Activator.CreateInstance(Type.GetType(param.ConstraintClass));
constraints.Add(param.Name, constraintObj);
}
else if (!string.IsNullOrEmpty(param.Constraint))
{
constraints.Add(param.Name, param.Constraint);
}
}
MapRoute(routes, routingItem.Name, routingItem.Url, defaults, constraints, pagePrefix);
}
}
public static void IgnoreRoute
(RouteCollection routes, string url, RouteValueDictionary constraints)
后面还有 55 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
