Descripción
El modelo de una página Razor incluye propiedades del tipo diccionario que queremos postear como campos ocultos o mediante Json.
Solución
Para camposOcultos
@helper OcultoDictionary(Dictionary<int, int> dicc, string nombre)
{
var i = 0;
foreach (var d in dicc)
{
<input type="hidden" value="@d.Key" name="@string.Format("{0}[{1}].Key",nombre,i)" />
<input type="hidden" value="@d.Value" name="@string.Format("{0}[{1}].Value",nombre,i)" />
i++;
}
}
Ejemplo de resultados
<input type="hidden" value="1" name="ExperienciasEspecificas[0].Key" />
<input type="hidden" value="1" name="ExperienciasEspecificas[0].Value" />
<input type="hidden" value="2" name="ExperienciasEspecificas[1].Key" />
<input type="hidden" value="1" name="ExperienciasEspecificas[1].Value" />
<input type="hidden" value="3" name="ExperienciasEspecificas[2].Key" />
<input type="hidden" value="1" name="ExperienciasEspecificas[2].Value" />
Para Json
@helper JsonDiccionario(Dictionary<int, int> dic, string n)
{
var i = 0;
foreach (var d in dic)
{
@Html.Raw($"'{n}[{i}].Key':{d.Key},")
@Html.Raw($"'{n}[{i}].Value':{d.Value},")
i++;
}
}
Ejemplo de resultados
{
...
'ExperienciasEspecificas[0].Key':1,
'ExperienciasEspecificas[0].Value':1,
'ExperienciasEspecificas[1].Key':2,
'ExperienciasEspecificas[1].Value':1,
'ExperienciasEspecificas[2].Key':3,
'ExperienciasEspecificas[2].Value':1,
...
}
No hay comentarios:
Publicar un comentario