-1
我尝试修改编辑器模板以使用数据注释。我有一些奇怪的事情。这里在editorTemplate下面。MVC 5:NameForModel呈现两次字段的名称和ID
@model Translations<string>
@{
Translation<string> t = null;
if (Model != null && Model.Values != null)
{
t = Model.Values.FirstOrDefault(p => p.Language == KalowContext.Instance.CurrentLanguage);
}
t = t ?? new Translation<string>();
var validationAttributes = Html.GetUnobtrusiveValidationAttributes("");
}
@Html.TextBox(Html.NameForModel().ToString(), t.Value, new RouteValueDictionary(validationAttributes)
{
{ "class", "form-control" }
}
)
<input class="form-control" type="text" name="@(Html.NameFor(m => Model))" value="@t.Value">
并且这是输出,你可以像@ Html.TextBox渲染名称和id属性两次。在第二个输入中工作正常。
<input name="dc.Name.dc.Name" class="form-control" id="dc_Name_dc_Name" type="text" value="Afghanistan" data-val-required="The Name field is required." data-val="true">
<input name="dc.Name" class="form-control" type="text" value="Afghanistan">
有什么建议吗?谢谢 !
这里是一流的翻译和翻译
public class Translations<T>
{
public List<Translation<T>> Values { get; set; }
public Translations()
{
}
}
public class Translation<T>
{
public ObjectId Language { get; set; }
public T Value { get; set; }
public Translation()
{
}
public Translation(ObjectId language, T value)
{
Language = language;
Value = value;
}
}
模板中的模型是什么? “EditorTemplate”的目的是什么?(你想做什么,不能简单地使用内置模板来完成) –
该模型是一个用于翻译的结构数组。类似于翻译,其中包含一组具有语言和值的翻译。为了简单起见,我只想使用EditorFor(t => t.Name)...并修改模板编辑器,这将为固定语言获得正确的值=>为什么我们有类似t.Value:=) –