-1
データ注釈を使用するエディタテンプレートを変更しようとしています。そして私はいくつかの奇妙なことを取得します。ここでは、editorTemplateの下にあります。MVC 5:NameForModelは、フィールドの名前とIDを2倍にレンダリングします。
@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属性を2回レンダリングできるので、出力です。どちらがうまく2番目の入力で動作します。
<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:=) –