Можно ли использовать ссылку внутри DropDownList HTML помощник? - PullRequest
0 голосов
/ 01 марта 2019

У меня есть класс модели с именем category, который извлекает данные из базы данных:

public class HomeController : Controller
    {
        private StoreContext db;
        public HomeController()
        {
            db = new StoreContext();
        }
        public ActionResult Categories()
        {
         return View(db.Categories.ToList());
        }
   }

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

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете сделать это, но вы должны использовать Jquery.Если спросить как?

Например:

Мой пример сущности

  public class Category
     {
            public int Id { get; set; } 
            public string Url{ get; set; } 
            public string Name { get; set; } 
     }

Мое действие:

  public IActionResult Categories()
    {
        var list = new List<Category>();
        for (int i = 0; i < 10; i++)
        {
             list.Add(new Category(){Id = i, Url = "https://stackoverflow.com", Name = "stackoverflow" });
        }

        var selectList = list.Select(x => new SelectListItem() {Value = Url, Text = x.Name})
            .ToList();
        return View(selectList);
    }

в моем представлении:

 @Html.DropDownList("url",Model, "Choose a URL",  new { id = "url_list" })

, а затем с помощью jquery вы можете подписаться на событие изменения этого выпадающего списка и перейти к соответствующему URL:

$(function() {
    $('#url_list').change(function() {
        var url = $(this).val();
        if (url != null && url != '') {
            window.location.href = url;
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...