2010-12-17 19 views
30

Nasıl boyut TextArea ve siz şu kullanabilirsiniz bazı modeli sınıfına kesinlikle yazılı görünüme sahip varsayarsak Asp.net MVCAsp.net MVC TextArea

cevap

33

bu deneyin:

<%=Html.TextAreaFor(
     m => m.Description, 15, 20, 
     new RouteValueDictionary(new { @class = "someClass"}))%> 

Düzenleme:
bildiğim kadarıyla bu nedenle

<%=Html.TextAreaFor(m => m.Description, new { cols = "20", rows = "15" })%> 

bildiği gibi bu alışkanlık iş: Eğer bir model Değeri atamak izin aşırı yüklenme olduğundan

private const int TextAreaRows = 2; 
private const int TextAreaColumns = 20; 

// ... 





    public static string TextArea(
       this HtmlHelper htmlHelper, string name, 
       IDictionary<string, object> htmlAttributes) { 
      Dictionary<string, object> implicitAttributes = new Dictionary<string, object>(); 
      implicitAttributes.Add("rows", TextAreaRows.ToString(CultureInfo.InvariantCulture)); 
      implicitAttributes.Add("cols", TextAreaColumns.ToString(CultureInfo.InvariantCulture)); 
      return TextAreaHelper(htmlHelper, name, true /* useViewData */, null /* value */, implicitAttributes, null /* explicitParameters */, htmlAttributes); 

} 
+0

1. Örneğiniz için: <% = Html.TextAreaFor (m => m.Description, 15, 20, null)%> –

+0

bu sözlük eklemek veya kaldırmak önemli değil =) Soru yazarı bunu ele alabilir =) –

9

kendisine Modeli Değerini atayın:

<%= Html.TextAreaFor(x => x.SomeProperty, new { rows = "20", cols = "10" }) %> 

ya:

<%= Html.TextAreaFor(x => x.SomeProperty, 20, 10, new { @class = "foo" }) %> 
+0

: <% = Html.TextAreaFor (x => x.SomeProperty, 20, 10, null) %> –

1

Tuzak@Html.TextAreaFor olduğunu.

Örnek 1:

@Html.TextAreaFor(m => m.Language, 6, 40, new { @class = "form-control",@value="Tft.WebRole.Properties.Settings.Default.DefaultLanguage"} 

Örnek 1 alışkanlık istisna yükseltmek ve alışkanlık herhangi bir metin gösterir. Bırak onu.

Çözüm:

kullanım @Html.TextArea yerine

Örnek 2:

@Html.TextArea("Language", Tft.WebRole.Properties.Settings.Default.DefaultLanguage, 6, 40, new { @class = "form-control" }) 

Önerileri:

ASPX kırıklığına gerektiğini de Razor çünkü daha hafif ve eşdeğer sözdizimi.

Sadece @ yerine

22

<%= %>. I uzakta basit bunu başarmak için buldum kullanın.

Modeller ek açıklama jileti textarea üretmek için yeterince akıllı olacaktır.

Modeli:

[DataType(DataType.MultilineText)] 
public string Comments { get; set; } 

View: 2 Örneğin

@Html.EditorFor(model => model.Comments)