Задать вопрос
@gamma06
web dev

Как связать два @html.dropdownlistfor?

Добрый вечер!
При построении проекта в asp.net mvc дошел до момента где нужно связать два dropdownlist'а, строю их таким образом:
public class HomeController : Controller
{
Database1dbContext _db = new Database1dbContext();

public ActionResult Index()
{
var p = from m in _db.Teams select m;
ViewBag.ddl = new SelectList(p, "Id", "Name");

var k = from h in _db.Players where h.TeamId == 1 select h;
ViewBag.ddl2 = new SelectList(k, "Id", "Name");

return View();
}
}

Подскажите пожалуйста как мне указать значение из таблицы вместо 1 (where h.TeamId == 1) в этом условии ???
  • Вопрос задан
  • 3087 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Valeriy1991
@Valeriy1991
Разработчик .NET C# (ASP.NET MVC) в Alfa-B, Moscow
Добрый день!

Во-первых, мне непонятен вопрос
Подскажите пожалуйста как мне указать значение из таблицы вместо 1 (where h.TeamId == 1) в этом условии ???


А во-вторых, судя из заголовка
Как связать два @html.dropdownlistfor
(если я его правильно понял), то на стороне сервера (т.е. на C#) Вы не свяжете несколько выпадающих списков. Если Вам нужно, чтобы при выборе какого-либо элемента из списка №1 (пусть это будет
<select id="list_1"...>...</select>
) автоматически менялись элементы в списке №2 (пусть это будет
<select id="list_2"...>...</select>
) , то Вам надо сделать следующее:
1. используя jQuery, повесить на событие change элемента select[id="list_1"] обработчик
2. этот обработчик будет определять, какое значение выбрал пользователь в списке №1 и отправлять ajax-запрос на какой-нибудь url
3. на стороне сервера реализовать метод действия, который будет принимать параметр запроса (из ajax-запроса), соответствующий выбранному в списке №1 элементу, ломиться в БД, получать отфильтрованные данные и отправлять их, например, во View (в которой есть @html.dropdownlistfor)
4. затем на ajax-запрос (из п.2) на событие success или метод done повесить обработчик, который будет парсить полученный html-код и полностью заменять содержимое списка №2 новым html-кодом.

Но, повторюсь, этот ответ основан на догадке из заголовка данного поста, потому что сам вопрос поставлен неточно.

Успехов!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы