Initializer syntax: new ViewDataDictionary { { “Name”, “Value” } }

ViewDataDictionary implements IDictionary<string, object>.

IDictionary<string, object> is essentially a collection of KeyValuePair<string, object>.

Your ViewDataDictionary initializer (outer curly braces) contains another set of curly braces that represents a KeyValuePair<string, object> initializer.

The reason this is possible is explained in this answer.

You can Add multiple items by comma separating the KeyValuePair<string, object> initializers:

var data = new ViewDataDictionary 
{ 
    { "Name", "Value" }, 
    { "Name2", "Value2" } 
};

Is the same as:

var data = new ViewDataDictionary 
{ 
    new KeyValuePair<string, object>("Name", "Value"), 
    new KeyValuePair<string, object>("Name2", "Value2") 
};

Essentially, the inner curly braces are nice syntax for initializing KeyValuePair<string, object> objects.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)