我接手了一个MVC项目,该项目的视图使用
显示多个部分视图Html.RenderPartial("ClientDetail", model);
Html.RenderPartial("PlanSummary", model);
我遇到的问题是在这些部分视图中,正在生成具有相同ID的控件。以上两个部分视图都有这一行:
Html.Hidden("Surname", Model.Surname)
这会创建无效的HTML,因为两个元素出现在具有相同id的渲染输出上。
除了使用“Surname1”,“Surname2”等之外,还有其他方法可以解决这个问题。
答案 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>