2010-11-21 118 views
2

是否有可能得到EditorFor方法也渲染像EditorForModel方法那樣的屬性的標籤和驗證?asp.net mvc editorfor

現在當我使用EditorFor方法的屬性(例如字符串),它只呈現文本框。

編輯

阿爾尼斯我嘗試過了,有一些問題:

擴展方法應在通用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是字符串類型。

當屬性是Decimal,Int,DateTime時,會拋出一個excel。

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

+0

我很確定問題在別處。對於整數,小數點,日期時間和自定義類型也使用相同的方法。 – 2010-11-22 10:57:50

+0

可能是我使用ASP.NET MVC 3 RC(Razor)的問題? – user137348 2010-11-22 12:54:10

回答

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 2010-11-21 12:31:55