2010-11-21 14 views
2

EditorForメソッドでも、EditorForModelメソッドのようなプロパティのラベルと検証を行うことはできますか?asp.net mvc editorfor

Nowプロパティ(文字列など)にEditorForメソッドを使用すると、テキストボックスのみがレンダリングされます。

EDIT

アーニスは、私はそれを試してみたし、そこにいくつかの問題:

拡張メソッドは、ジェネリックのHtmlHelperクラスにバインドする必要があります。ヘルパーから返された文字列も、エンコードされたhtmlを引き起こしていました。

だから私はあなたのコード

public static MvcHtmlString EditorWithLabel<T>(this HtmlHelper<T> h,Expression<Func<T, object>> p) 
{ 
     return new MvcHtmlString(string.Format("{0}: {1}", h.LabelFor(p), h.EditorFor(p))); 
} 

を変更しかし、主な問題は、それが唯一のpropertはString型である場合に動作しますです。

プロパティがDecimal、Int、DateTimeの場合、excetionがスローされます。

Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

+0

私は非常に問題が他の場所にあると確信しています。 int、decimals、datetimes、およびカスタム型に対しても同じアプローチを使用します。 –

+0

ASP.NET MVC 3 RC(Razor)を使用していると問題が発生する可能性がありますか? – user137348

答えて

1

私は(コードは未テストです)カスタムHTMLヘルパーを作成します。

public string EditorWithLabel<T>(this HtmlHelper h, 
    Expression<Func<T, object>> p){ 

    return string.Format("{0}: {1}",h.LabelFor(p),h.EditorFor(p)); 
} 

これはあまりにもtemplatesで達成することができますが、私はカスタムヘルパーが良く合うと思います。

+0

私の記事を見てください、私はそれを編集しました。 – user137348

関連する問題