2010-09-30 23 views
17

मैं एक फ़ील्ड प्रकार के लिए एक संपादक टेम्पलेट बनाना चाहता था जिसे ड्रॉपडाउन सूची के रूप में दर्शाया गया है। संपादक टेम्पलेट की परिभाषा में मैं जेएसओएन के रूप में परिणाम लौटने वाले नियंत्रक पर एक कार्रवाई के लिए कॉल का उपयोग करके ड्रॉपडाउनलिस्ट को पॉप्युलेट करना चाहता हूं - कोई विचार यह कैसे करना है?एएसपी.नेट एमवीसी एचटीएमएल। डॉपडाउनलिस्ट अजाक्स कॉल द्वारा नियंत्रक को पॉप्युलेट किया गया?

जैसे कुछ की तरह:

<%= Html.DropDownListFor(
    x => x.PropertyToHoldSelectedValue, 
    Enumerable.Empty<SelectListItem>(), 
    "-- Loading Values --", 
    new { id = "foo" }) 
%> 

फिर एक नियंत्रक कार्रवाई है कि मूल्यों वापस आ जाएगी सेटअप:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<TheFieldType>" %> 
<%= Html.DropDownList(..... 
+0

एचटीएमएलहेल्पर पर एक विस्तार विधि के लिए नौकरी की तरह लगता है जो एक नियंत्रक विधि आदि लेता है आदि। अब तक आप क्या मिला है? – bzlm

उत्तर

61

संपादक टेम्पलेट में एक खाली लटकती प्रदान

public class FooController: Controller 
{ 
    public ActionResult Index() 
    { 
     return Json(new[] { 
      new { Id = 1, Value = "value 1" }, 
      new { Id = 2, Value = "value 2" }, 
      new { Id = 3, Value = "value 3" }, 
     }, JsonRequestBehavior.AllowGet); 
    } 
} 

और फिर AJAX का उपयोग करके मानों को पॉप्युलेट करें:

$(function() { 
    $.getJSON('/foo/index', function(result) { 
     var ddl = $('#foo'); 
     ddl.empty(); 
     $(result).each(function() { 
      $(document.createElement('option')) 
       .attr('value', this.Id) 
       .text(this.Value) 
       .appendTo(ddl); 
     }); 
    }); 
}); 
+2

यह बहुत अच्छा लग रहा है - मैं इसे आज़मा दूंगा और वापस आऊंगा। – UpTheCreek

+2

हालांकि, यह समाधान 3 साल पुराना है, यह अभी भी चमत्कार करता है। धन्यवाद डारिन। – shazia

+0

इस के लिए मॉडल कैसे बनाएं Suresh

3

मुझे पता है कि यह पोस्ट कुछ साल पुराना है लेकिन मुझे यह पता चला और आप भी ऐसा कर सकते हैं। मैं निम्नलिखित समाधान का उपयोग करता हूं और यह बहुत अच्छी तरह से काम करता है। जावास्क्रिप्ट की एक पंक्ति लिखने की आवश्यकता के बिना मजबूत टाइप किया गया।

mvc4ajaxdropdownlist.codeplex.com

आप एक NuGet पैकेज के रूप में दृश्य स्टूडियो के माध्यम से इसे डाउनलोड कर सकते हैं।

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