ASP.NET MVC RenderPartial处理客户端ID

时间:2009-07-13 08:14:33

标签: asp.net-mvc partial-views renderpartial

我接手了一个MVC项目,该项目的视图使用

显示多个部分视图
Html.RenderPartial("ClientDetail", model);
Html.RenderPartial("PlanSummary", model);

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

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

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

除了使用“Surname1”,“Surname2”等之外,还有其他方法可以解决这个问题。

1 个答案:

答案 0 :(得分: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>