@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) в этом условии ???
  • Вопрос задан
  • 3058 просмотров
Пригласить эксперта
Ответы на вопрос 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-кодом.

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

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

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

Войти через центр авторизации
Похожие вопросы