Я пытался выяснить это уже более суток, но я просто не могу заставить это работать.У меня есть веб-сайт asp.net MVC, который использует структуру лица для своей модели данных.Мне нужно иметь возможность редактировать сложную Release
сущность, которая содержит List<ReleaseDescription>
. У меня есть следующая модель (очевидно, я не могу загрузить картинки, поэтому я просто наберу ее):
public class Release
{
public string Version
..some other primitive properties
public EntityCollection<ReleaseDescription>
}
public class ReleaseDescription
{
public string Description
public Language Language
}
public class Language
{
public string ISOCode
public string Description
}
При поиске решения этой проблемы в Интернете.Я обнаружил, что использование EntityCollection (см. Список Release.ReleaseDescription
) не является хорошей идеей, поэтому в частичном классе Release
я создал дополнительное свойство ReleaseDescriptionList
, которое преобразует эту entityCollection в List<ReleaseDescription>
через геттер.нет установщика.
Проблема в том, что при сохранении my release.ReleaseDescription
или даже release.ReleaseDescriptionList
всегда пусто, когда в нем должны быть элементы.
Здесь следует остальная часть моего кода:
Мой код Edit.aspx выглядит следующим образом
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Server.DM.Release>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Edit</h2>
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
... (Code for the primitive properties (works all fine)
<fieldset>
<legend>Descriptions</legend>
<% for(var i =0; i<Model.ListReleaseDescriptions.Count; i++)
{%>
<%: Html.EditorFor(x => Model.ListReleaseDescriptions[i], "ReleaseDescriptionRow")%>
<%} %>
<%= Html.ActionLink("Add another...", "AddDescription", Model) %>
</fieldset>
<p>
<input type="submit" value="Save" />
</p>
<% } %>
<div>
<%: Html.ActionLink("Back to List", "Index") %>
</div>
</asp:Content>
Код asp в DescriptionRelease выглядит следующим образом:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Server.DM.ReleaseDescription>" %>Language: <%= Html.TextBoxFor(x => x.Language.ISOCode) %>Qty: <%=Html.TextBoxFor(x => x.Description)%>
(я не смог получить вышекодовый блок на нескольких строках извините)
Когда я нажимаю кнопку сохранения на экране редактирования и попадаю на свой ActionController,
[HttpPost]
public ActionResult Edit(Release release)
release.DescriptionRelease
не содержит никаких данных, когда 3 элемента должны бытьв этом.Любая помощь приветствуется в решении этой проблемы!
(ps: да, я знаю, что на этом и других форумах есть похожие темы, но ни одна из них мне не подходит.)