[Aktifkan intellisense pada atribut HTMLHelper untuk kelas css]
Saya memiliki bantuan HTML ini:
public IHtmlString MyTextBoxFor<TModel, TProperty>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TProperty>> propertyExpression,
string cssClass)
{
// ...
}
Saya ingin Resharper memberi saya IntelliSense untuk kelas CSS yang ditentukan dalam aplikasi saya ketika memberikan nilai untuk parameter "cssClass".
Ada beberapa atribut anotasi kode yang dikenali Resharper, tetapi tidak ada yang tampaknya terkait langsung dengan menandai parameter metode sebagai kelas CSS.
Yang paling dekat yang bisa saya temukan adalah [HtmlAttributeValue (nama string)] . Saya mencoba menerapkan parameter cssClass seperti ini:
public IHtmlString MyTextBoxFor<TModel, TProperty>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TProperty>> propertyExpression,
[HtmlAttributeValue("class")] string cssClass)
{
// ...
}
Tapi itu tidak berhasil. Ini juga akan sangat luar biasa jika Resharper akan mengenali kelas yang dimasukkan dan berhenti mengganggu saya tentang kelas CSS yang tidak diketahui dalam ekspresi pemilih jQuery (yang beroperasi pada kotak teks yang dihasilkan oleh helper di atas).
Edit: Berikut adalah tangkapan layar dari jenis intellisense yang bekerja untuk parameter "htmlAttributes" dari metode tindakan. Ini dilakukan dengan menggunakan anotasi [HtmlElementAttributes] pada parameter.
Saya ingin penjelasan serupa yang memungkinkan saya menempatkan kelas css dalam parameter string dan memiliki intellisense yang sama muncul menampilkan kelas css.
sumber
Jawaban:
Gunakan [ValueProvider]
Dari Anotasi Kode yang saat ini didukung oleh Resharper 10, kandidat terbaik akan menggunakan atribut ini. Dari tautan di atas:
Sayangnya, saya belum mengetahui cara kerjanya. Mungkin ada bug di Resharper versi 9.2 saya.
Apa yang saya coba sejauh ini:
Meskipun berhasil, Anda masih harus mengisi daftar Nilai.
Dan tentu saja, Anda masih dapat mengembangkan penjelasan / ekstensi kode Anda untuk Resharper.
Mengapa tidak menggunakan objek yang diketik kuat dan bukan string?
Terkadang alih-alih menggunakan
string
danint
, kita bisa menggunakan kelas yang diketik lebih kuat dari desain kita sendiri. Karena tampaknya Anda mengontrol kode Anda, alih-alih menggunakanstring
dengan nama css di dalamnya, Anda dapat membuat tipe baru sepertiCssClass
.Anda hanya perlu menambahkan sebagai acara prebuilt panggilan ke generator yang mengurai setiap css dalam proyek dan secara dinamis membuat kelas seperti itu:
dan sampel Anda akan terlihat seperti itu:
sumber