我有一个下拉列表(城市),在选择它应该能够绑定MVC 5中的网格视图
我能够绑定下拉列表和网格视图,但无法处理下拉列表的选择事件 . 我不知道如何继续这个我不想使用Jquery . 以下是我的代码
//下面是下拉列表代码
@using (Html.BeginForm("BindGridView", "FacebookConfig", FormMethod.Post, new { id = "Id" }))
{
@Html.DropDownList("Cities")
}
//关于上面的选择,我应该可以绑定下面的网格视图
@if (Model != null)
{
foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.Keywords)
@Html.ActionLink("Edit", "Edit", new { id = item.Id })
@Html.ActionLink("Delete", "Delete", new { id = item.Id })
//以下是控制器中的代码
public ActionResult Index()
{
var cities = So.BL.City.GetCities();
ViewBag.Cities = new SelectList(cities, "Id", "Name");
return View();
}
[HttpPost]
public ActionResult BindGridView(int id)
{
var filter = So.BL.FacebookFilter.SelectFBApprovalFilters(id);
return View(filter);
}
1 回答
如果要对更改事件的下拉列表执行操作,则必须使用javascript / jquery来处理元素事件 . 为了满足您的要求,您可以这样做,
创建
<div>
以保存要使用要选择的ID创建的新网格视图 .创建生成网格视图的局部视图 .
在jquery / javascript中创建一个函数,用于更改事件的下拉列表 .
从函数调用使用ajax的action方法 .
创建一个操作方法,该方法可以执行您想要执行的功能,并返回包含生成网格视图所需模型的局部视图 .
最后在ajax调用的成功方法上,将输出响应写入
<div>
的内部html .如果肯定不会使用jquery或javascript,那么回发帖子并从post方法中选择的下拉值获取网格视图的数据并将其绑定到网格 . 请注意,下拉列表中的表单提交不会发生,必须使用提交按钮 . 如果不为null,还显示基于网格的模型 .
选择您可能采用的那个 .