डेटा विशेषताओं को रेजर में कैसे निर्दिष्ट करें, जैसे, डेटा-एक्सटीरियर = "23151" @ इस पर। एचटीएमएल.चेकबॉक्सफ़ॉर (…)


122
@this.Html.CheckBoxFor(m => m.MyModel.MyBoolProperty, new { @class="myCheckBox", extraAttr="23521"})

रेजर के साथ, मैं डेटा के लिए मान निर्दिष्ट करने में असमर्थ हूं- जैसे कि विशेषताएँ data-externalid="23521"

क्या इसका उपयोग करने का कोई तरीका है @this.Html.CheckBoxFor(...)?

जवाबों:


268
@Html.CheckBoxFor(
    m => m.MyModel.MyBoolProperty, 
    new { 
        @class = "myCheckBox", 
        data_externalid = "23521"
    }
)

_स्वचालित रूप से करने के लिए परिवर्तित किया जाएगा -जिसके परिणामस्वरूप मार्कअप में:

<input type="checkbox" name="MyModel.MyBoolProperty" data-externalid="23521" class="myCheckBox" />

और यह सभी Html सहायकों के लिए एक htmlAttributesअनाम वस्तु को तर्क के रूप में लेने के लिए सही है, न केवल CheckBoxForसहायक के लिए।


4
वाह, मैं '_' '-' रूपांतरण को वास्तव में भ्रमित होने वाला देख सकता हूं ... खासकर यदि कोई व्यक्ति किसी दिए गए डेटा विशेषता की तलाश में एक स्ट्रिंग खोज करता है। क्या कोई और तरीका है?
RayLoveless

5
बस इसे रूपांतरित करें: नया {data_test = "true"} -> नया शब्दकोश <string, object> {{"data-test", "true"}};
डोमिनिक एलेक्जेंडर

1
और अगर आपको अपने ViewModel से आने वाले मान की आवश्यकता है; new { @class = "myCheckBox", data_externalid = Model.ExternalId }मैं इस विषय पर मदद की तलाश में आया था और मुझे यही चाहिए था। :)
स्कॉट फ्रेली

8 साल बाद इस जवाब ने मुझे बड़े पैमाने पर मदद की है। मैं यह पता नहीं लगा सका कि मेरे vue form v-model टैग को जोड़ने से काम क्यों नहीं चलेगा। मुझे इसके बजाय v_model = "blah" का उपयोग करना पड़ा।
एंड्रयू जूनियर हावर्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.