2013-02-26 123 views
11

इस प्रश्न को पोस्ट करने से पहले, मैंने अपने पैरामीटर का उपयोग करके EditorForModel के लिए googled।अपने पैरामीटर के साथ EditorForModel के लिए एक उदाहरण प्रदान कर सकते हैं?

मैंने Why not use Html.EditorForModel() और यह blog पढ़ा।

मुझे अपनी आवश्यकताओं के लिए संबंधित लेख नहीं मिला।

मुझे पैरामीटर के साथ EditorForModel के साथ एक उदाहरण प्रदान कर सकता है?

धन्यवाद आप

उत्तर

26

इस सहायक की 6 overloads हैं:

  1. @Html.EditorForModel()

    रेंडर जहां TypeName आपके विचार मॉडल का सही प्रकार का नाम है ~/Views/Shared/EditorTemplates/TypeName.cshtml टेम्पलेट। यदि आपका व्यू मॉडल एक संग्रह है (यानी IEnumerable<TypeName>, IList<TypeName>, TypeName[], ...) एएसपी.नेट एमवीसी स्वचालित रूप से संग्रह के प्रत्येक तत्व के लिए संबंधित संपादक टेम्पलेट प्रस्तुत करेगा। ऐसा होने के लिए आपको अपने विचारों में किसी भी लूप को लिखने की आवश्यकता नहीं है। यह आपके लिए ढांचे द्वारा संभाला जाता है।

  2. @Html.EditorForModel("templatename")

    ~/Views/Shared/EditorTemplates/templatename.cshtml बजाय सम्मेलन

  3. @Html.EditorForModel(new { Foo = "bar" })

    रेंडर डिफ़ॉल्ट संपादक टेम्पलेट पर भरोसा करने की प्रस्तुत होती है इसे करने के लिए एक अतिरिक्त दृश्य डेटा गुजरता है कि आप ViewData["foo"] या ViewBag.Foo के साथ अंदर इस्तेमाल कर सकते हैं

  4. @Html.EditorForModel("templatename", new { Foo = "bar" })

    ~/Views/Shared/EditorTemplates/templatename.cshtml बजाय सम्मेलन पर निर्भर रहने के रेंडर और इसे करने के लिए एक अतिरिक्त दृश्य डेटा गुजरता है कि आप ViewData["foo"] या ViewBag.Foo

  5. @Html.EditorForModel("templatename", "fieldprefix")

    के साथ अंदर इस्तेमाल कर सकते हैं ~/Views/Shared/EditorTemplates/templatename.cshtml बजाय सम्मेलन पर निर्भर रहने के रेंडर और संशोधित करता है इस टेम्पलेट के अंदर नेविगेशन संदर्भ, जिसका अर्थ है कि उदाहरण के लिए यदि आपके पास @Html.TextBoxFor(x => x.FooBar) इस टेम्पलेट के अंदर कॉल है तो आपको name="FooBar"

  6. के बजाय name="fieldprefix.FooBar" मिलेगा
  7. @Html.EditorForModel("templatename", "fieldprefix", new { Foo = "bar" })

    रेंडर ~/Views/Shared/EditorTemplates/templatename.cshtml बजाय सम्मेलन पर भरोसा करने की और इस टेम्पलेट के अंदर नौवहन संदर्भ को संशोधित करता है, जिसका अर्थ है कि उदाहरण के लिए यदि आप इस टेम्पलेट के अंदर एक @Html.TextBoxFor(x => x.FooBar) कॉल किया था आप name="fieldprefix.FooBar" बजाय name="FooBar" मिलेगा।यह भी यह करने के लिए एक अतिरिक्त दृश्य डेटा गुजरता है कि आप के साथ ViewData["foo"] या ViewBag.Foo

टिप्पणी के अंदर इस्तेमाल कर सकते हैं: templating प्रणाली पहले ~/Views/XXX/EditorTemplates में टेम्पलेट्स जहां XXX नियंत्रक है, यह दृश्य सेवा की है और का नाम है के लिए दिखेगा अगर ऐसा नहीं लगता है तो यह ~/Views/Shared/EditorTemplates में दिखेगा। यह टेम्पलेट्स के अधिक सुगंधित tweaking के लिए अनुमति दे सकता है। आपके पास साझा फ़ोल्डर में डिफ़ॉल्ट टेम्पलेट्स हो सकते हैं जिन्हें प्रति नियंत्रक आधार पर ओवरराइड किया जा सकता है।