MVC 5: NameForModel отображает дважды имя и идентификатор поля

Я пытаюсь изменить шаблон редактора, чтобы использовать аннотации данных. И я получаю некоторые странные вещи. Здесь внизу редактор шаблонов.

@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;
    }

}

1 ответ

Решение
<input class="form-control" type="text" name="@(Html.NameFor(m => Model))"
   @Html.Raw(string.Join(" ", 
       validationAttributes.
          Select(x => x.Key.ToString() + "=\"" + x.Value + "\"")))
              value="@t.Value">

Промежуточное решение... но так как нет аудитории. Я так и продолжаю. знак равно

Другие вопросы по тегам