Если у меня строго типизированное представление с моделью, имеющей массив другого объекта, возможно ли иметь строго типизированное частичное представление, которое добавляет этот другой объект в модель?
Например, еслиУ меня было представление, набранное HandSurvey
, которое имеет массив CurrentGlove
. Могу ли я иметь частичное представление в форме ручного опроса со строгой типизацией CurrentGlove
, что, когда пользователь нажимает кнопку отправки, он не возвращаетновое представление, но добавляет объект CurrentGlove
в массив модели HandSurvey
?Как бы я пошел об этом?Извините, если это не имело смысла, у меня много проблем с пониманием структуры mvc.
Это модели:
public class HandSurveyModel
{
public HandSurveyModel() { }
[DisplayName("Location Number:")]
public string LocationNumber { get; set; }
[DisplayName("Location Name:")]
public string LocationName { get; set; }
public List<HandSurveyRisk> Risks { get; set; }
public List<CurrentGlove> CurrentGloves { get; set; }
}
public class CurrentGlove
{
public CurrentGlove() { }
public int Quantity { get; set; }
public string MFGNumber { get; set; }
public string Size { get; set; }
public string UOM { get; set; }
public string Description { get; set; }
public string Department { get; set; }
public string Comments { get; set; }
}
это код впредставление, набираемое на HandSurveyModel
:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<fieldset>
<legend>Hand Protection Survey</legend>
<% using (Html.BeginForm("HandSurvey", "Resources"))
{ %>
<div style="float: left; margin-left: 10px; margin-right: 10px">
<%= Html.LabelFor(x => Model.LocationNumber)%>
<%= Html.TextBoxFor(x => Model.LocationNumber) %></div>
<div>
<%= Html.LabelFor(x => Model.LocationName)%>
<%= Html.TextBoxFor(x => Model.LocationName) %></div>
<fieldset>
<legend>Risk Assessment</legend>
<fieldset style="float: left; margin: 10px">
<legend>Chemical</legend>
<% for (int i = 0; i < Model.Risks.Count; i++)
{%>
<%= Html.CheckBoxFor(x => x.Risks[i].IsChecked)%>
<%= Html.DisplayFor(x => x.Risks[i].Text)%>
<br />
<%} %>
</fieldset>
<input type="submit" value="OK" />
<% } %>
</fieldset>
<fieldset>
<legend>Current Gloves</legend>
<% Html.RenderPartial("~/Views/Resources/CurrentGlove.ascx", new CurrentGlove()); %>
</fieldset>
</fieldset>
</asp:Content>
это код в частичном представлении, набираемый на CurrentGlove
:
<% using (Html.BeginForm("CurrentGlove", "Resources")) { %>
<%= Html.EditorForModel() %>
<p><input type="submit" value="OK" id="btnSearch"/></p>
<% } %>