1

を使用していくつかの部分的なビューを表示するビューを持つMVCプロジェクトを引き受けました

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

私が抱えている問題は、これらの部分的なビューの内部で、同じIDを持つコントロールが生成されていることです。上記の両方の部分ビューには、次の行があります。

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

これにより、レンダリングされた出力に同じIDで2つの要素が表示されるため、無効なHTMLが作成されます。

「Surname1」、「Surname2」などを使用する以外に、これを修正する他の方法はありますか?

4

1 に答える 1

1

これを試して:

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

部分ビュー:

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>
于 2009-07-13T08:44:04.843 に答える