次のようなASP.NETMVC コードのプレビュー4を使用します。
<%= Html.CheckBox( "myCheckBox", "Click Here", "True", false ) %>
出力のみ:
<input type="checkbox" value="True" name="myCheckBox" />
name
フォームのポストバックにはありますがid
、JavaScriptやラベルにはありません:-(
私はそれを次のように変更することを望んでいました:
Html.CheckBox( "myCheckBox", "Click Here",
"True", false, new { id="myCheckBox" } )
動作しますが、代わりに例外が発生します:
System.ArgumentException: An item with the same key has already been added.
コレクションのどこかにすでにIDがあったかのように-私は困惑しています!
興味のある人のための完全な例外は次のとおりです(ちょっと-ここにファイルを添付するのはいいことではないでしょう):
System.ArgumentException:同じキーを持つアイテムがすでに追加されています。 System.ThrowHelper.ThrowArgumentException(ExceptionResourceリソース)で System.Collections.Generic.Dictionary`2.Insert(TKey key、TValue value、Boolean add)で System.Web.Routing.RouteValueDictionary.Add(String key、Object value)で System.Web.Mvc.TagBuilder2.CreateInputTag(HtmlInputType inputType、String name、RouteValueDictionary属性)で System.Web.Mvc.CheckBoxBuilder.CheckBox(String htmlName、RouteValueDictionary htmlAttributes)で System.Web.Mvc.CheckBoxBuilder.CheckBox(String htmlName、String text、String value、Boolean isChecked、RouteValueDictionary htmlAttributes)で System.Web.Mvc.CheckBoxExtensions.CheckBox(HtmlHelperヘルパー、文字列htmlName、文字列テキスト、文字列値、ブールisChecked、オブジェクトhtmlAttributes) ASP.views_account_termsandconditions_ascx .__ Render__control1(HtmlTextWriter __w、Control parameterContainer)のc:\ dev \ myProject \ Views \ Account \ Edit.ascx:line 108