我是 MVC3 的新手,正在尝试处理我的第一个小项目。我有一个 HomeController 有两个动作,Index() 和 GetData()。索引只返回索引视图。当索引页面加载时,我希望有一个 html 按钮或按钮类型的输入。当我单击此按钮时,我希望运行 GetData 操作,该操作根据 linq 查询选择一些数据并返回一个列表。然后在索引视图本身中,在我单击的按钮下方,我希望将列表填充到 html 表中.....我假设使用 foreach 循环。
这不起作用,我想我显然误解了这种 MVC 模式的概念。
我的控制器代码:
private ReferenceDataContext data = new ReferenceDataContext();
public ActionResult Index()
{
return View();
}
public ActionResult GetData()
{
using (data)
{
var hosp = (from x in data.Hospitals
where x.HAcode == "Q36"
select x).ToList();
ViewData["hosp"] = hosp;
return RedirectToAction("Index");
}
}
我的查看代码:
@model IEnumerable<NursingHomes.Models.Hospitals>
@{
ViewBag.Title = "Hospitals Verify";
}
<br />
<br />
@using (Html.BeginForm("GetData", "Home"))
{
<input type="submit" value="Submit" title="Get Data" />
<h2>Nursing Homes</h2>
<table>
<tr>
<th>Code</th>
<th>HAcode</th>
<th>Name</th>
</tr>
@foreach (NursingHomes.Models.Hospitals item in (List<NursingHomes.Models.Hospitals>) ViewData["hosp"])
{
<tr>
<td>
@Html.DisplayFor(modelItem=>item.Code)
</td>
<td>
@Html.DisplayFor(modelItem=>item.HAcode)
</td>
<td>
@Html.DisplayFor(modelItem=>item.Name)
</td>
</tr>
}
</table>
}
我在上面做错了什么?如果不使用 JQuery,这是不可能的吗?
基本问题是,如何在索引页面上单击该按钮,并告诉它运行 GetData 操作,然后使用 GetData 操作返回的列表在按钮下方构建表格。