Answer-ID
  • Întrebări
  • Tag-uri
  • Categorii
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 Ronnie
Ronnie

Cum obțineți un ID personalizat pentru a face folosind HtmlHelper în MVC

Utilizând previzualizare 4 a ASP.NET MVC Cod ca:

<%= Html.CheckBox( "myCheckBox", "Click Here", "True", false ) %>

ieșiri numai:


Există un name pentru postarea înapoi a formularului, dar nu id pentru javascript sau etichete :-(

Speram să-i schimbăm:

Html.CheckBox( "myCheckBox", "Click Here", 
               "True", false, new { id="myCheckBox" } )

ar funcționa - dar, în schimb, am o excepție:

System.ArgumentException: An item with the same key has already been added.

Ca și cum ar fi existat deja un id undeva într-o colecție undeva - m-am lovit!

Excepția totală pentru oricine interesat urmează (hei - nu ar fi frumos să atașați fișiere aici):

System.ArgumentException: An item with the same key has already been added. 
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Web.Routing.RouteValueDictionary.Add(String key, Object value)
   at System.Web.Mvc.TagBuilder2.CreateInputTag(HtmlInputType inputType, String name, RouteValueDictionary attributes)
   at System.Web.Mvc.CheckBoxBuilder.CheckBox(String htmlName, RouteValueDictionary htmlAttributes)
   at System.Web.Mvc.CheckBoxBuilder.CheckBox(String htmlName, String text, String value, Boolean isChecked, RouteValueDictionary htmlAttributes)
   at System.Web.Mvc.CheckBoxExtensions.CheckBox(HtmlHelper helper, String htmlName, String text, String value, Boolean isChecked, Object htmlAttributes)
   at ASP.views_account_termsandconditions_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in c:\dev\myProject\Views\Account\Edit.ascx:line 108
6 2008-08-11T19:54:20+00:00 2
Programare
asp.net-mvc
html-helper
Comentarii la întrebare (0)
Nick Berardi
12 august 2008 в 12:12
2008-08-12T00:12:48+00:00
Mai mult
Sursă
Editează
#8171

Se pare că acesta este un bug. Deoarece îl adaugă la valorile potențiale de randare, au uitat să o includă. Aș recomanda crearea unui bug pe codeplex și descărcați sursa și modificați-o pentru nevoile dvs.

0
0
Comentarii (0)
Lance Fisher
12 august 2008 в 2:26
2008-08-12T02:26:29+00:00
Mai mult
Sursă
Editează
#8289

Incearca asta:

<%= Html.CheckBox("myCheckbox", "Click here", "True", false, new {_id ="test" })%>

Pentru orice cuvânt cheie, puteți utiliza un subliniere înainte de numele atributului. În loc de clasă, utilizați _class. Deoarece clasa este un cuvânt cheie în C #, precum și numele atributului în HTML. Acum, "id" nu este un cuvânt cheie în C #, dar poate că este într-o altă limbă .NET pe care doresc să o susțină. Din câte vă pot spune, nu este un cuvânt cheie în VB.NET, F # sau Ruby, deci poate că este o greșeală pe care o obligă să folosiți un subliniere cu ea.

0
0
Comentarii (0)
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
ID
KO
RU
© Answer-ID 2021
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire