1

我接受了一个 MVC 项目,该项目的视图使用显示多个部分视图

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

我遇到的问题是,在这些部分视图中,正在生成具有相同 ID 的控件。上述两个局部视图都有这一行:

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

然后,这会创建无效的 HTML,因为两个元素出现在具有相同 id 的呈现输出上。

除了使用“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 回答