2014-12-19 3 views
-2

Я использую САШ MVC 5 в Visual Studio 2014,1 У меня есть выпадающий, который заполняется данными из базы данных:как заполнить 2-й выпадающий с asp.net MVC AJAX

ViewBag.Brans = new SelectList(db.Brans.OrderBy(m => m.Ad), "No", "Ad"); 
@Html.DropDownList("Brans", null, htmlAttributes: new { @class = "form-control" }) 

Тогда у меня есть еще один выпадающий , и я хочу заполнить это поле со списком после того, как я выберу вариант из первого комбо. Его как выбор страны из первого комбо. то во втором появятся города.

Вы знаете, как это сделать?

+1

[каскадный DropDownList MVC] (https://www.google.com.au/search?q=mvc+cascading+combobox&oq=mvc+cascading+comb&aqs=chrome.1.69i57j0l5.6604j1j7&sourceid=chrome&espv=2&es_sm=122&ie= UTF-8 # q = mvc + cascading + dropdownlist) –

+1

http://stackoverflow.com/questions/25008617/cascading-dropdownlist-with-mvc5-ajax-c-sharp-and-mssql-server/25009549#25009549 – SBirthare

+1

кто Положите, что -1 –

ответ

1

Одним из вариантов является сделать запрос Ajax к действию, которое будет возвращать список ваших деталей

public virtual JsonResult GetCountryStates() 
     { 
      return Json(
       new 
       { 
        new List<SelectListItem>() {YOUR ITEMS HERE} 
       }); 
     } 

Затем в теле обратного вызова Ajax поместить код, как этот

function (data) { 
       //var selValue; 

       data = $.map(data, function (item, a) { 
        if (item.Selected) { 
         selValue = item.Value; 
        } 
        return "<option value=\"" + item.Value + "\" " + (item.Selected ? "selected" : "") + ">" + item.Text + "</option>"; 
       }); 
       $('statesSelect').html(data.join("")); 
       $('statesSelect').val(selValue); 
      }, 
+1

большое спасибо. это работает vey well –

0

@fly_ua: Хорошо способ заселения в зависимости от выпадающего списка Но что, если мы отправляем форму и по выбранному значению, мы извлекаем следующие данные выпадающего списка из нашего контроллера и снова загружаем форму? Это может быть безопасный способ, а не вызов AJAX.

+0

Hi Kishan, возможно, да, но в моем случае вы уже прошли аутентификацию в разделе участников, и все действия в MVC содержат [Authoroze] и проверку роли. Так как я написал - это только один из возможных способов. –

0
$('#@Html.Encode(Html.IdFor(x => x.YourProperty))')on("Change", function (event) { 
    event.preventDefault(); 
    var id = $(this).val(); 

    $.ajax({ 
     url: '@Url.Action("ActionName", "ControllerName")', 
     type: "GET", 
     data: { 
      id: id, 
     }, 
     success: function (result) { 
      $('#@Html.Encode(Html.IdFor(x => x.SecondDropDownProperty))').html(result) 
     } 
    }); 
}); 

создать один вид с выпадающей и rendor бритвы JSON с этой точкой зрения

Делая это, вы будете создавать общий зависимый выпадающий список.

Смежные вопросы