كيف تحصل على الهوية المخصصة لتقديم باستخدام HtmlHelper في MVC

StackOverflow https://stackoverflow.com/questions/8147

  •  08-06-2019
  •  | 
  •  

سؤال

باستخدام معاينة 4 من ASP.NET MVC رمز مثل:

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

فقط النواتج:

<input type="checkbox"  value="True"  name="myCheckBox"  />

هناك name هناك شكل آخر مرة أخرى ولكن لا id جافا سكريبت أو التسميات :-(

كنت آمل أن يتغير إلى:

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

أن العمل - ولكن بدلا من ذلك حصلت على استثناء:

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

كما لو كان هناك بالفعل هوية في مكان ما في مجموعة في مكان ما - أنا الحيرة!

كامل استثناء لأي شخص مهتم يلي (مرحبا - لن يكون من الجميل أن إرفاق الملفات هنا):

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
هل كانت مفيدة؟

المحلول

جرب هذا:

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

أي الكلمات الرئيسية يمكنك استخدام تسطير أسفل السطر قبل اسم السمة.بدلا من فئة يمكنك استخدام _class.منذ الصف الكلمات الرئيسية في C# و أيضا اسم السمة في HTML.الآن, "id" ليست الكلمة في C#, ولكن ربما كان في آخر .صافي اللغة التي يريدون الدعم.من ما استطيع ان اقول انها ليست الكلمة في VB.NET F# أو روبي ربما هو خطأ أنها تجبرك على استخدام تسطير أسفل السطر معها.

نصائح أخرى

يبدو أن هذا هو الخلل.لأنها إضافة إلى إمكانية تقديم القيم ، هم فقط نسيت إدراجه.أنصح خلق خلل في codeplex و تحميل المصدر تعديله لتلبية الاحتياجات الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top