2011-02-03 12 views
28

का उपयोग कर एचटीएमएल विशेषता नाम में एक हाइफ़न जोड़ना मुझे वेबग्रिड सहायक का उपयोग करके प्रस्तुत की गई तालिका में एक कस्टम HTML5 डेटा विशेषता जोड़ने की कोशिश करने में समस्या आ रही है। मैं मेज टैग नज़र चाहते हैं इस प्रकार है:एमवीसी 3 वेबग्रिड सहायक

<table data-test="testdata"><!-- Table Content --></table> 

यहाँ उस्तरा दृश्य इंजन का उपयोग कर एक नमूना दृश्य है: "। अमान्य गुमनाम प्रकार सदस्य declarator"

@{ 
    var myUser = new 
    { 
     Id = 1, 
     Name = "Test User" 
    }; 

    var users = new[] { myUser }; 

    var grid = new WebGrid(users); 
} 
@grid.GetHtml(htmlAttributes: new { data-test = "testdata"}) 

अंतिम पंक्ति का उत्पादन करेगा डेटा परीक्षण में हाइफ़न की वजह से त्रुटि।

कुछ अन्य इनपुट एचटीएमएलहेल्पर के साथ, आप हाइफ़न के स्थान पर अंडरस्कोर का उपयोग कर सकते हैं और इसे प्रस्तुत किए जाने पर स्वचालित रूप से एक हाइफ़न में बदल दिया जाएगा। यह वेबग्रिड के साथ नहीं होता है।

अगर मैं htmlAttributes के लिए एक शब्दकोश में पारित:

@grid.GetHtml(htmlAttributes: new Dictionary<string, object> {{ "data-test", "testdata"}}) 

तालिका में इस तरह के रूप में प्रदान की जाती है:

<table Comparer="System.Collections.Generic.GenericEqualityComparer`1[System.String]" Count="1" Keys="System.Collections.Generic.Dictionary`2+KeyCollection[System.String,System.Object]" Values="System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Object]"><!-- Table Content --></table> 

क्या मैं गलत कर रहा हूँ और मैं के रूप में वांछित विशेषता प्रस्तुत करना क्या करना चाहिए?

+0

क्या होता है जब आप अपने विशेषता नाम के नीचे '@' डालते हैं? यदि आप कक्षा की एक विशेषता जोड़ना चाहते हैं तो आपको '@ class' टाइप करना होगा क्योंकि 'कक्षा' विशेष है, क्या यह आपके विशेष गुण पर भी लागू होगा? –

+0

सामने @ डालकर वही व्यवहार है जैसा कि वहां नहीं है। –

उत्तर

43

मुझे डर है कि यह संभव नहीं है। दुर्भाग्य से WebGrid यह इस तरह के रूप में TextBoxFor मानक HTML सहायक के रूप में एक ही वाक्य रचना का समर्थन नहीं करता है, जहां आप:

@Html.TextBoxFor(x => x.SomeProp, new { data_test = "testdata" }) 

और अंडरस्कोर स्वचालित रूप से होगा पानी का छींटा बदल दिया।

+12

दुर्भाग्यवश यह HTML.BeginForm() के साथ काम नहीं करता है, इसलिए हमें इसे इस तरह से करना था @using (Html.BeginForm ("view", "नियंत्रक", FormMethod.Post, नया शब्दकोश {{"डेटा- परीक्षण "," testdata "}})) – Korayem

+0

भयानक दोस्त :) –

संबंधित मुद्दे