Условно заполнить управление частичным просмотром в MVC3 - PullRequest
1 голос
/ 21 февраля 2012

Создание частичного представления для ввода некоторых личных данных. Мне нужно включить 2 выпадающих списка, 1 для страны и другие для штатов. Когда я выбираю страну в качестве США, тогда она хочет заполнить все названия штатов из БД. Если мы выбираем другую страну, я хочу заменить раскрывающийся список состояний в текстовое поле. Как я могу сделать это возможным?

Спасибо.

1 Ответ

2 голосов
/ 21 февраля 2012

Я предлагаю использовать jquery ajax-запрос, чтобы заполнить раскрывающийся список опциями в зависимости от значения страны. Запрос ajax может указывать на другой PartialView, который будет возвращать выпадающий список или текстовое поле в зависимости от параметра ...

Дайте мне знать, если у вас возникнут проблемы с реализацией, я буду рад помочь вам ...


Действие в контроллере:

public ActionResult StateNames(string country)
{
    if(country == "US")
    {
        var model = GetArrayOfUsStates();
        return View(model);
    }
    else
    {
        var model = string[0];
        return View(model);
    }
}

Частичное представление для вашего выпадающего списка:

@model string[]

@if(Model.Length == 0)
{
    <input type="text" name="state" />
}
else
{
    <select name="state">
        @foreach(var state in Model)
        {
            <option value="@state">@state</option>
        }
    </select>
}

Структура вашей страницы:

<select id="countryDDL">
   ...
</select>
<div id="stateDDLHolder">
</div>

Ваш код JQuery, чтобы получить выпадающий:

$.ajax({ 
         url: '/YourController/StateNames/' + $('#countryDDL').val(),
         success: function(data) { $('#stateDDLHolder').html(data); }
});
...