2008-11-14 3 views
35

Metin kutuları oluşturmak için Html.TextBox yardımcı programını kullanıyorum. Ben şu aşırı kullanılarak yapılır anlama metin üzerinde özelliklerini ayarlamak istiyorum:ViewData'dan değer alımını korurken bir Html.TextBox yardımcı için öznitelikleri nasıl belirtebilirim?

Html.TextBox (string name, object value, object htmlAttributes)

Ancak, HTML yardımcısı otomatik ViewData veya ViewData birinden değeri kullanır işlevselliğini korumak istiyorum. Model ve ben sadece ad ve htmlAttributes belirtmek için bir yol görmüyorum. Mümkün mü?

cevap

57

[EDIT] source code'a baktıktan sonra, yapmanız gereken tek şey, ad, değer ve htmlAttributes alan imzadaki değeri null olarak belirtmektir. Değer boşsa, değeri ViewData'dan kullanmaya çalışır.

Html.TextBox("name", null, new { @class = "css-class" }); 
6

Eğer modelinden değerini tedarik etmek gerekmez, her zaman sadece standart HTML kullanabilirsiniz:

<input type="text" name="fieldName" id="fieldName"/> 

O zaman etiketindeki ihtiyaç nitelikleri ne olursa olsun sağlayabilmektedir.

2

@Tvanfosson, cevabınız için teşekkürler. Bugün bana bir demet yardım etti. Listedeki her bölüm için bir satır içeren bir tablo oluşturmaya çalışıyordum. Her bir parçayı temel alarak birkaç özellik belirlemek istedim ve bana doğru yönde işaret ettin. ek bağlam sağlayan bu kod soruya cevap olsa

<% foreach (var poPart in Model.myPartsList) 
     { %> 
     <tr> 
      <td> 
       <% var part = Model.PartID; %> 
       <%: Html.TextBox(part.ToString(), null, new { @class = "narrowText", @id = part.ToString() })%> 
      </td> 
     </tr> 
    <% } %> 
8

ustura

@Html.TextBox("name", "", new {@class = "css-class", @onclick = "alert('demo');"}); 
0
@Html.TextBox("Name", "Value", new {@class = "class1 class2", @customAttributeName = "attributeValue"}) 
+0

için bu deneyin: durumda herkes burada, nasıl birden çok özellik ayarlamak için döngü ve görmek istiyor gider _why_ ve/veya _how_ ile ilgili olarak yanıtı sorusu, uzun vadeli değerini önemli ölçüde artıracaktır. Lütfen bazı açıklama eklemek için cevabınızı [düzenleyin]. –

+0

@ Html.TextBox'ta özel Attribute ekleyerek çalışma sınavı var – Newred