заполните html.textbox при обмене html.dropdownlist в asp.net mvc - PullRequest
1 голос
/ 16 июля 2010

Я новичок в asp.net mvc ... и мне нужна помощь для моего вопроса ниже:

Когда форма загружается, в раскрывающемся списке моей страны есть некоторые значения.Я хочу, чтобы, когда пользователь выбирает значение из раскрывающегося списка, он должен вернуться к контроллеру и сделать запрос к базе данных, чтобы получить значение CountryCode на основе выбранной страны.Как мне имитировать этот обратный вызов?

Заранее спасибо

Deepthi

Ответы [ 3 ]

1 голос
/ 16 июля 2010

В отличие от классических веб-форм в ASP.NET MVC нет такого понятия, как PostBack.Итак, для начала вам нужна модель, которая будет представлять ваши данные:

public class MyViewModel
{
    public string SelectedCountry { get; set; }
    public IEnumerable<SelectListItem> Countries { get; set; }
}

Затем вам понадобится контроллер, который определяет два действия: одно для рендеринга формы, а другое для обработки отправки:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            // you probably would fetch those from the database
            Countries = new SelectList(new[] 
            {
                new { Value = "FR", Text = "France" },
                new { Value = "US", Text = "USA" } 
            }, "Value", "Text")
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(string selectedCountry)
    {
        // selectedCountry will contain the code that you could use to 
        // query your database
        return RedirectToAction("index");
    }
}

И, наконец, вы можете добавить строго типизированное представление к модели, которая будет содержать разметку:

<% using (Html.BeginForm()) { %>
    <%: Html.DropDownListFor(x => x.SelectedCountry, Model.Countries) %>
    <input type="submit" name="OK" />
<% } %>

Если ничего из этого не имеет для вас никакого смысла, я бы предложил вам чтение учебников по началу работы .

0 голосов
/ 16 июля 2010
0 голосов
/ 16 июля 2010

Вам нужно установить AutoPostBack = "true" в выпадающем списке.Также ваш элемент управления должен установить ваш OnSelectedIndexChanged = "SomeFunction".Это будет вызывать функцию в вашем коде позади каждого изменения индекса в вашем раскрывающемся списке.Вот пример

<asp:DropDownList ID="dropDownID" runat="server" AutoPostBack="true" OnSelectedIndexChanged="OnDropdownIndex_Change"> </asp:DropDownList>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...