我是MVC的新手,希望确保我了解如何应用我需要构建的复杂视图。
我需要允许用户在页面上添加多个机构,每个机构都可以
有多次培训。
所以视图模型将是一个包含训练列表的机构列表。
我将有一个按钮,允许他们在机构内添加多个机构
另一个按钮,允许他们添加多个培训。
关于回发方法我是否只是循环遍历模型中的机构 并为每个机构循环通过它的培训列表将它们保存到数据库中?
答案 0 :(得分:0)
您可能希望改为使用这样的控制器:
public class InstitutionController : Controller
{
public ViewResult Index()
{
return View(); // Keep it simple, load data via JSON instead
}
[HttpPost]
public JsonResult Load()
{
// Go get Institutions etc
return Json(institutions);
}
[HttpPost]
public JsonResult Save(Institutions[] institutions)
{
try
{
// Save the institutions to the DB
}
catch (Exception ex)
{
return Json(new { Message = "Error." });
}
return Json(null); // Or some other way of saying it worked
}
}
也就是说,传递给View的模型不会被浏览器保留 - 而是在服务器内存中短暂显示,而服务器会生成响应。
在上面的示例中,您可以创建一个View,使用例如jquery通过JSON从服务器加载Model,然后您可以在浏览器中保留该页面的生命周期。当用户对Institution或Instutions进行修改时,您可以使用上面的Save()方法将新数据或数据更改发送到服务器以保存到数据库。