2014-05-25 6 views
12

दृढ़ता से टाइप करने के लिए हम @model और @inherit का उपयोग कर सकते हैं। क्या आप कृपया मुझे बता सकते हैं कि दोनों के बीच क्या अंतर है?एमवीसी 4 रेजर अंतर @model और @inherit में हेडर देखें?

संपादित करें:

कृपया this example देखते हैं।

+1

वाह! @inherit! सही समय पर! धन्यवाद; मुझे उत्तर नहीं पता; लेकिन आपका सवाल मेरा जवाब था! :) –

उत्तर

20

अंतर इस प्रकार है: यदि आपका विचार WebViewPage<T> से प्राप्त होता है तो आपका मॉडल निर्देश T पर इंगित करता है। http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx

+0

इसका मतलब है कि @@ विरासत केवल System.Web.Mvc.WebviwPage के साथ काम करते हैं? और @@ मॉडल के साथ हम कक्षा चुनने के लिए स्वतंत्र हैं? – user576510

+0

@ user576510: '@ model' का अर्थ यह भी है कि पृष्ठ 'WebViewPage' से प्राप्त होता है। जो आप निर्दिष्ट करते हैं वह सामान्य पैरामीटर है। –

+0

'मॉडल 'निर्देश काम नहीं कर रहा था क्योंकि कस्टम वर्चुअल प्रदाता का उपयोग करके मेरे पास एक अलग परियोजना में मेरे विचार हैं। '@ विरासत 'एक आकर्षण और हल घंटों या इंटरनेट खुदाई की तरह काम किया। धन्यवाद। :-) – Maxime

4

वे ही कर रहे हैं (यानी दृढ़ता से टाइप संकेत मॉडल वर्ग) लेकिन @inherit है:

दूसरे शब्दों में, इन दो बराबर

@inherits System.Web.Mvc.WebViewPage<ModelClass> 

और

@model ModelClass 

संदर्भ हैं अधिक verbose (पूर्ण पथ की वजह से)। @inherit ऐसा करने का एकमात्र तरीका था जब रेजर को पहली बार पेश किया गया था (एमवीसी 3 मुझे लगता है कि प्री-रिलीज), लेकिन मैंने इसे वर्षों तक इस्तेमाल नहीं देखा है।

+0

मुझे यह मिला लेकिन बात यह है कि उन्हें @@ मॉडल पेश करने की आवश्यकता क्यों है? मैं विश्वास नहीं कर सकता कि दोनों एक ही काम करते हैं। – user576510

+0

विकटोर के उत्तर में लिंक यह बेहतर बताता है कि मैं कर सकता था। –

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