UPDATE
In the course of further research, it turned out that this is due to the property of the model that I am trying to relate. This is a number with a zero value. When I change it to decimal, the correct value is selected from the list.
That's where things start to get weird. If I use 4 decimal places for dictionary keys, it works with a zero value of the decimal model. In other words, this works:
public SelectList VatRatesList
{
get
{
return new SelectList(
new Dictionary<decimal, string>
{
{ 0.0000m, string.Empty },
{ 1.2000m, "20%"},
{ 1.0000m, "0%"}
}, "Key", "Value");
}
}
, . , html helper ToString() . , ToString() . MVC, .