2016-08-23 8 views
-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; 
    } 

} 
+0

テンプレート内のモデルは何ですか?そして、 'EditorTemplate'の目的は何ですか(何をしようとしていますか?組み込みテンプレートを使ってもっと簡単に行うことはできません) –

+0

モデルは、翻訳に使用される構造体の配列です。翻訳のようなもので、言語と値の変換の配列が含まれています。簡単に私はちょうどEditorFor(t => t.Name)を使い、テンプレートエディタを適応させて、固定言語の正しい値を得る=>なぜt.Value:=) –

答えて

0
<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"> 

中級ソリューションです...しかし、何の観客がありませんよう。私はそのようにしています。 :=)

+0

これまでに何かが見つかりましたか? –

関連する問題