У мене є модель
public class UserModel : IUserModel
{
public LocationModel WorkLocation { get; set; }
public LocationModel HomeLocation { get; set; }
public LocationModel ShippingLocation { get; set; }
}
Я створив часткове представлення того, що показують поля з класу LocationModel.
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<LocationModel>" %>
<fieldset>
<div class="common-fieldset">
<div>
<span class="editor-label">
<%: Html.LabelFor(model => model.Location.Bldg)%>
</span><span class="editor-field">
<%: Html.EditorFor(model => model.Location.Bldg)%>
</span><span class="editor-label">
<%: Html.LabelFor(model => model.Location.Lobby)%>
</span><span class="editor-field">
<%: Html.EditorFor(model => model.Location.Lobby)%>
</span><span class="editor-label">
<%: Html.LabelFor(model => model.Location.Suite)%>
</span><span class="editor-field">
<%: Html.EditorFor(model => model.Location.Suite)%>
</span>
</div>
</div>
</fieldset>
Коли контролер відображає мій UserModel, виглядає вечірдобре Але всі ідентифікатори полів у HTML з моїх класів LocationModel мають однакові назви, а при поверненні властивостей LocationModel містять значення не init. Це робить кожну з цих властивостей без часткового огляду всі нормально працюючими. Чому? Дякую.
<div>
Home Address:
<%: Html.Partial("Controls/Location", Model.HomeLocation) %>
</div>
<div>
Work Address:
<%: Html.Partial("Controls/Location", Model.WorkLocation) %>
</div>
<div> Shipping Address:
<%: Html.Partial("Controls/Location",Model.ShippingLocation) %>
</div>
Відповіді:
1 для відповіді № 1Я створив часткове представлення того, що показують поля з класу LocationModel.
Замість часткового використання я рекомендую використовувати шаблон редактора. Тож перемістіть це LocationModel.ascx
всередині ~/Views/Shared/EditorTemplates/LocationModel.ascx
а потім просто:
<div>
Home Address:
<%= Html.EditorFor(x => x.HomeLocation) %>
</div>
<div>
Work Address:
<%= Html.EditorFor(x => x.WorkLocation) %>
</div>
<div>
Shipping Address:
<%= Html.EditorFor(x => x.ShippingLocation) %>
</div>
Тепер усі ваші введені дані матимуть правильні ідентифікатори та імена.