如何解决.Net MVC 表单更新 |创建嵌套对象 EF6
我有两个对象 Client 和 Translations
public class Client
{
[Key]
public Guid ID;
public Guid EventID;
public string Email;
public virtual IList<Translations> Translations;
public List<string> Languages;
public Client(){
Translations = new List<Translations>();
Languages = new List<string> (){ "en","fr","es" };
}
}
public class Translations
{
[Key]
public Guid ID;
[Foreignkey("Client")]
public Guid ClientID;
public string FirstName;
public string LastName;
}
Client 具有通用属性并针对不同语言进行自定义,这些属性存储在 Translations 中。 我需要创建一个包含两种类型字段的表单。
@Html.HiddenFor(m => m.Client.EventID,new { id = "eventId" })
<div class="form-group">
@Html.LabelFor(m => m.Client.Email)
@Html.EditorFor((m => m.Client.Email,new { htmlAttributes = new { @class = "form-control" } })
</div>
<div class="tab-content-wrapper">
@foreach (var language in Model.Client.Languages) {
<div id="tab-@language" class="tab-content" style="display:none;">
@Html.HiddenFor(m => m.Client.Translations.FirstOrDefault(f => f.Language == language).Language,new { id = "TranslationsLanguage" })
<div class="col-md-6">
<div class="form-group">
@Html.LabelFor(m => m.Client.Translations.FirstOrDefault(f => f.Language == language).FirstName)
@Html.EditorFor((m => m.Client.Translations.FirstOrDefault(f => f.Language == language).FirstName,new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
<div class="col-md-6">
<div class="form-group">
@Html.LabelFor(m => m.Client.Translations.FirstOrDefault(f => f.Language == language).LastName)
@Html.EditorFor(m => m.Client.Translations.FirstOrDefault(f => f.Language == language).LastName,new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
</div>
}
</div>
问题是:在表单提交时传递给 ClientController 的 Client.Translations 列表总是空的。
看起来EF无法绑定它。而且我不能使用像 @foreach (var Translation in Model.Client.Translations)
这样的循环
因为在我添加一些特定于语言的数据之前它是空的。
欢迎任何解决方案。 提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。