2016-03-30 24 views
-1
Ben bir açılır listede değerini alıyorum

c kontrolör mvc değeri değişti ve ben kullanıcı açılır listeden herhangi bir değer seçtiğinizde denetleyici seçili değeri elde etmek istedi.nasıl seçilecek almak için endeks #

@using (Html.BeginForm("ApReport", "Sales", FormMethod.Post)) 
{ 
    @Html.DropDownList("Ddl", null, "All", new { @class = "control-label"}) 

    @Html.Hidden("rddl")         
} 

kontrolör - - My görünümüdür

[HttpPost] 
public ActionResult ApReport(ApReport Ddl) 
{ 
    string Ddlvalue = string.Empty; 
    if (Request.Form["rddl"] != null) 
    { 
    Ddlvalue = Request.Form["rddl"].ToString(); 
    } 
} 

ama herhangi bir değer almıyorum. Ayrıca, herhangi bir gönderme düğmesini kullanmak istemiyorum. Ajax kullanımı tüm sayfayı yenilemeden ana görünümü güncelleştirmek, hem de arka planda sunucuya veri göndermek için geliştirici olarak size izin veren önceden

+0

Olası kopyalar (http://stackoverflow.com/questions/27901175/how-to-get-dropdownlist-selectedvalue-in-controller-in-mvc4 [MVC4 içinde Kontrolör içinde DropDownList SelectedValue nasıl alınır]) –

+0

Eğer '' Request.Form [ "DDL"] 'için', 'Request.Form [ "RDDL"]' 'sadece değişimi gizli bir alan gerekmez' –

+0

ne demek bir gönder düğmesi istemiyor musunuz? (Verileri denetleyiciye nasıl gönderiyorsunuz). Ve sizin açılır isminizin adı 'name =" Ddl "' dır. Bu, modelin her zaman "null" olacağı anlamına gelir çünkü denetleyicideki parametre de 'Ddl' olur. –

cevap

1

yılında

teşekkürler.

Bu

ben bu görevi başarılı olurdu nasıl.

Öncelikle, bir JsonResult döndüren benim denetleyicisi Bir eylem oluşturduktan olurdu. Bu, bir JSON nesnesini arama jQuery kodunuza döndürecek ve değerlerinizi geri almak için kullanabilirsiniz. İşte eylem yönteminin bir örneğidir.

[HttpGet] 
public JsonResult YourActionName(string selectedValue) //Assuming key in your dropdown is string 
{ 
    var result = DoYourCalculation(selectedValue); 

    return Json(new { myResult = result }, JsonRequestBehavior.AllowGet); 
} 

Şimdi, jquery kodunuzu eklemeniz gerekir. Bu, görünümünüzün başvurduğu ayrı bir javascript dosyasına yerleştirmenizi tavsiye ederim.

İşte denetleyicisi Harekete ajax çağrısı ile, JQuery kodudur. Sunucuya Ajax çağrısı, aşağıda görüldüğü gibi, JQuery'de işlenen DropDown'unuzun 'değişim' etkinliği tarafından başlatılır.

$(function() { 
     $(document) 
      .on('change', '#Ddl', function(){ 
       var valueofDropDown = $(this).val(); 
       var url = '/YourControllerName/YourActionName'; 
       var dataToSend = { selectedValue: valueofDropDown } 

       $.ajax({ 
        url: url, 
        data: dataToSend, 
        type: 'GET', 
        success: function (dataReceived) { 
         //update control on View 
         var receivedValue = dataReceived.myResult ; 
         $('YourControlIDToUpdate').val(receivedValue); 
       } 
      }) 
     }); 
    }; 
ait
+0

Çok teşekkürler, tam olarak istediğim şey – ronibd

İlgili konular