2013-07-31 13 views
6

मैं कुछ जेनेरिक के लिए नया हूं और मैं यह नहीं समझ सकता कि निम्नलिखित क्यों काम नहीं करते हैं।सी # जेनिक्स, मैं क्या गलत कर रहा हूँ?

मैं IEnumerable<T> के लिए एक विस्तार है, ग्रिड कहा जाता है और यह इतना

public static class IEnumberableGridExtension 
    { 
     public static HelperResult Grid<T>(this IEnumerable<T> gridItems, Action<GridView<T>> thegrid) 
     { 
      ........ 
     } 

    } 

कहते हैं की तरह, मैं अपने उस्तरा "उत्पाद" और यह प्रकार List<Product> है कहा जाता मॉडल में एक चर राशि लग रहा है, तो मैं करने की कोशिश की इसमें कहा गया है 'गैर प्रतिनिधि प्रकार को "ग्रिड विधि समूह कनवर्ट नहीं कर सकता"' वस्तु 'कर

@Model.Products.Grid<Product>(grid=>{ 
... 
}); 

। आप, रेखांकित "के साथ," @ Model.tasks.Grid "लाल विधि आह्वान करने का इरादा किया था?।

अजीब बात है, दृश्य स्टूडियो संकलित, सब कुछ ठीक है। बेशक अगर मैं बस

@Model.Products.Grid(grid=>{ 
... 
}); 
करना

यह उस्तरा पार्सर < व्याख्या करने के तरीके और> सामान्य HTML टैग के रूप में सभी ठीक है

+0

आपने कहा कि यह सामान्य प्रकार 'उत्पाद' की एक सूची है। क्या वह एक टाइपो था? यदि नहीं, तो आपको पहली पंक्ति को '@Model.Products.Grid (... ' – John

+0

क्षमा करें जॉन। यह एकवचन 'उत्पाद' है। मैं इसे – Liming

+0

पर ठीक कर दूंगा यदि आप शून्य में गुजरते हैं तो क्या होता है एक्शन के लिए? –

उत्तर

7

आप कोष्ठक में कॉल लपेटकर समस्या से बचने कर सकते हैं:।।

@(Model.Products.Grid<Product>(grid=>{ 
... 
})) 

आप यहां अतिरिक्त जानकारी पा सकते हैं: How to use generic syntax inside a Razor view file?

+0

बिंगो! बहुत बहुत धन्यवाद @ fcuesta !!!! पहले से ही 2 घंटों के लिए खोज रहे थे, मेरी भलाई! माइक्रोसॉफ्ट को वास्तव में इसे ठीक करना चाहिए, विश्वास नहीं कर सकता कि यह कुछ आसान है! – Liming

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