Estamos tratando de ser seguro en cuanto al tipo de letra en nuestras vistas y usar el nuevo ExpressionInputExtenssion HtmlHelpers, pero estamos viendo algunos resultados inconsistentes. Tenemos una visión que tiene este aspecto:ASP.Net MVC 2.0 Html.HiddenFor HtmlHelper extension no devuelve el valor
ViewData.Model.FooID = <%= ViewData.Model.FooID %><
Model.FooID = <%= Model.FooID %>
<%= Html.HiddenFor(x=>x.FooID) %>
Pero lo que vemos en la vista renderizada es la siguiente:
ViewData.Model.FooID = 515b0403-e75b-4bd7-9b60-ef432f39d338
Model.FooID = 515b0403-e75b-4bd7-9b60-ef432f39d338
<input id="FooID" name="FooID" type="hidden" value="" />
puedo añadir manualmente este:
<input id="FooID" name="FooID" type="hidden" value="<%= Model.FooID %>" />
Pero ahora ya no están, pero sorprendentemente cuando lo hago, The Html.HiddenFor siempre tiene el valor correcto.
realidad, es un anulable? No, aún no he depurado la extensión HtmlHelper. ¿El encuadernador del modelo debería cablear el modelo antes de la acción del controlador, aunque es correcto? Puedo pasar por mi acción de controlador, verme el modelo con el valor correcto, e incluso en la vista puedo ver el modelo con el valor correcto. Incluso puedo ver el valor del modelo evaluar en la vista si accedo a la propiedad directamente. –
Mark
Acabo de probar esto y funciona bien: <% = Html.Hidden ("CustomerGuid", item.CustomerGuid)%> Al menos de esta manera todavía puede ser seguro de tipo ... –
Sí. Podría hacerlo, pero estaba tratando de evitar el nombre de control "CustomerGuid". Sería bueno si simplemente te dieran un método de extensión como Html.IdFor (x => x.CustomerGuid) y luego podría lanzarlo donde sea que lo necesite. No me importa escribir el código HTML, solo nombrar el control. ¡Gracias! – Mark