是否可以在DropDownList html helper中使用链接?

时间:2019-03-01 11:49:28

标签: c# asp.net-mvc model-view-controller

我有一个名为category的模型类,可以从数据库中检索数据:

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

我想使用DropDownList辅助方法在视图中显示它们,并且我希望其中的所有类别都是clickable,例如,单击它们时,它必须 adress < / em>您指定的url属于单击的类别。有没有办法通过DropDownList助手来实现这一目标?如果是,那怎么办?

1 个答案:

答案 0 :(得分:1)

您可以执行此操作,但必须使用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可以订阅此下拉列表的change事件并导航到相应的URL:

$(function() {
    $('#url_list').change(function() {
        var url = $(this).val();
        if (url != null && url != '') {
            window.location.href = url;
        }
    });
});