Pregunta

he tomado en un proyecto de MVC que tiene una vista que muestra varias vistas parciales utilizando

Html.RenderPartial("ClientDetail", model);
Html.RenderPartial("PlanSummary", model);

El problema que tengo es que dentro de estas vistas parciales, controla con el mismo ID están siendo generado. Tanto de las vistas parciales anteriores tienen esta línea:

Html.Hidden("Surname", Model.Surname)

Esto crea HTML no válido como aparecen dos elementos en el resultado representado con el mismo id.

¿Hay alguna otra manera de arreglar esto, aparte de utilizar "apellido1", "Apellido2", etc.

¿Fue útil?

Solución

Prueba esto:

<%= Html.RenderPartial("ClientDetail", model, new ViewDataDictionary {{"PartialId", 1}}) %>
<%= Html.RenderPartial("PlanSummary", model, new ViewDataDictionary {{"PartialId", 2}}) %>

En la vista parcial:

Html.Hidden("Surname" + HtmlEncode(ViewData["PartialId"]), Model.Surname)

<!-- or -->

Html.Hidden("Surname" + PartialId, Model.Surname)

<script runat="server">
    protected string PartialId {
        get {
            return HtmlEncode(ViewData["PartialId"]);
        }
    }
</script>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top