悬赏分:50 浏览:420 次
routes.Add(new Route("{action}/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { controller = "", action = "", id = "" }),
Constraints = new RouteValueDictionary { { "id", @"\d+" } }
});
这是在Global中定义一个URL规则,相信已经有许多人用过,标红的这句是添加一个id为数字时才匹配的约束,我的问题是 new RouteValueDictionary { { "id", @"\d+" } } 这句是啥语法 new Class{ {"", ""} }这两对花括号是什么意思,里面的那对是一个匿名类吗?
这是RouteValueDictionary的构造方法:
public RouteValueDictionary();
public RouteValueDictionary(IDictionary<string, object> dictionary);
public RouteValueDictionary(object values);
protected RouteValueDictionary(SerializationInfo info, StreamingContext context);
|
6个月前 Dove.Net : 确实是C#3.0的语法,记得3.0中的匿名类是这种语句 new {"",""} 但不知道new Class {{}} 这是什么语法了 |
|
6个月前 Dove.Net : 明白了new RouteValueDictionary { { "id", @"\d+" } }外面那对括号叫Collection initializers集合初始化器 里面这个{ "id", @"\d+" } 即 IDictionary<string, object> dictionary 参数 不知道理解是否正确 |