What determines the key in the ModelStateDictionary for Items of Collection Properties
If this is my view model:
public class ViewModel{
public string SimpleProperty{get;set;}
public SubViewModel ComplexProperty{ get;set;}
public SubViewModel[] ComplexPropertyArray{ get; set; }
}
public class SubViewModel{
public string NestedSimpleProperty{get;set;}
}
Then what would be the default error message keys assigned to a ModelStateDictionary
for:
ViewModel.SimpleProperty(see update below)ViewModel.ComplexProperty(see update below)ViewModel.ComplexProperty.NestedSimpleProperty(see update below)ViewModel.ComplexPropertyArray(see update below)- ViewModel.ComplexPropertyArray[0]
- ViewModel.ComplexPropertyArray[0].NestedSimpleProperty
Update I found this in reflector:
protected internal static string CreateSubPropertyName(string prefix, string propertyName)
{
if (string.IsNullOrEmpty(prefix))
{
return propert开发者_StackOverflowyName;
}
if (string.IsNullOrEmpty(propertyName))
{
return prefix;
}
return (prefix + "." + propertyName);
}
So, I think that covers everything except for #5 and #6
If you make the NestedSimpleProperty
required:
public class SubViewModel
{
[Required]
public string NestedSimpleProperty{ get; set; }
}
and then you have a form in which you have multiple textboxes for this property corresponding to each item in the ComplexPropertyArray
collection then the key that will be used for error messages will be ComplexPropertyArray[i].NestedSimpleProperty
where i
represents the index of the element in the array which contains an empty value.
精彩评论