Tôi muốn sử dụng RenderPartial hai lần trong chế độ xem của mình với các mô hình khác nhau được liên kết. Vấn đề là một số thuộc tính có mặt trong cả hai mô hình (biệt danh, mật khẩu). Họ không có tiền tố, vì vậy ngay cả các id hoặc tên đều bình đẳng trong đầu ra. Bây giờ, nếu tôi có lỗi mô hình cho biệt hiệu hoặc mật khẩu, cả hai trường sẽ được tô sáng.ASP.NET MVC 2 - ViewModel Tiền tố
Main Xem:
<div>
<% Html.RenderPartial("Register", Model.RegisterModel); %>
</div>
<div>
<% Html.RenderPartial("Login", Model.LoginModel); %>
</div>
Đăng nhập PartialView:
<% using (Html.BeginForm("Login", "Member")) { %>
<fieldset>
<legend>Login</legend>
<p>
<%= Html.LabelFor(x => x.Nickname) %>
<%= Html.TextBoxFor(x => x.Nickname) %>
</p>
<p>
<%= Html.LabelFor(x => x.Password) %>
<%= Html.PasswordFor(x => x.Password) %>
</p>
<input type="submit" value="Login" />
</fieldset>
<% } %>
Đăng ký PartialView:
<% using (Html.BeginForm("Register", "Member")) { %>
<fieldset>
<legend>Register</legend>
<p>
<%= Html.LabelFor(x => x.Nickname) %>
<%= Html.TextBoxFor(x => x.Nickname) %>
</p>
<p>
<%= Html.LabelFor(x => x.Email) %>
<%= Html.TextBoxFor(x => x.Email) %>
</p>
<p>
<%= Html.LabelFor(x => x.Password) %>
<%= Html.PasswordFor(x => x.Password) %>
</p>
<p>
<%= Html.LabelFor(x => x.PasswordRepeat) %>
<%= Html.PasswordFor(x => x.PasswordRepeat) %>
</p>
<input type="submit" value="Register" />
</fieldset>
<% } %>
Làm thế nào tôi có thể thay đổi điều này?
Bạn không cần phải viết quá tải của riêng mình cho RenderPartial, đã có quá tải khiến bạn xác định lại bộ sưu tập ViewData là gì. Bạn chỉ có thể thêm tiền tố của mình vào đó và yêu cầu mô hình của bạn tìm kiếm nó. Xem: http://msdn.microsoft.com/en-us/library/dd470827.aspx – R0MANARMY