问题描述
我有两个对象 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 (将#修改为@)