2012-02-08 26 views
23
ben şöyle bir saha kimliği ayarlamak çalışıyorum

ile Html.EditorFor kullanarak id ayarlayın:nasıl yapabilirim MVC3

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 

ama bu şu sonuçlanır ve benim id ayarlı değil görünüyor:

<input type="text" value="334" name="item.Order" id="item_Order" class="text-box single-line"> 

Neyin yanlış yaptığına dair bir fikrim var mı? EditorFor için izin verilen formatları kontrol ettim ve örnekler için google'a baktım ama ihtiyacım olanla eşleşen hiçbir şey göremedim.

+0

'@' 'id' like 'önce' @ id = ' – Hadas

+0

kimliği, C#' da bir anahtar kelime DEĞİLDİR, bu yüzden @ @ gerek yok, bu sadece @class – Jaap

cevap

30

Sen html

+0

gibi anahtar kelimeler için gereklidir. Bu harika çalıştı. Şimdi, Html.EditorFor ve Html.TextBoxFor arasındaki farkın ne olduğunu merak ediyorum. EditorFor'un şablonları kullandığı fark nedir? –

+1

Evet, EditorFor özel tip/şablon içindir. – dohaivu

+21

Ama asıl soru ne olacak? Eğer EditorFor'u kullanmak istiyorsan/kullanman gerekiyorsa - Ne zaman daha sonra id ayarlanmalı? – JonK

2

Güçlü yazılan yardımcıları kullanırken kimlik özniteliğini geçersiz kılabildiğinizden emin değilim.

@Html.Editor(string.Format("Order_{0}", Model.Row), Model.Order) 

Bu kimliği gibi birinci parametreyi ve varsayılan değer olarak ikinci kullanacak: Ama olmayan diğer modeli türü kullanabilirsiniz.

3

size x.Order için bir editör şablon oluştururken denedi niteliklerini değil, görünüm veriler için

@Html.TextBoxFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 

@Html.EditorFor ikinci parametresidir olarak değişmesi gerekir?

Düzenleyicinizin şablonu bu var:

<input type="text" id="@ViewData["id"]"> 

ve görünüm sayfasında bu kullanın:

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 
13
@Html.EditorFor(x => x.Order, null, string.Format("Order_{0}", Model.Row)) 
+5

Bu, kabul edilmek istenen soruya cevap olarak kabul edilen cevap olarak kabul edilmelidir. – ChrisFox

3

Bu soru oldukça eski olduğunu biliyorum ama tüm Yapmam gereken aşağıdaki gibiydi:

İstediğiniz/ihtiyacınız olan herhangi bir sınıf veya kimliği verebilirsiniz.

string endID = "end-" + @item.ID; 

Umarım bu gelecekte kimse yardımcı olur: Ben her öğe için farklı bir kimlik yaratmak için de benim sayfasında bu erken var.