我是 MVC 的新手,想确保我了解如何实现我需要构建的复杂视图。
我需要允许用户在一个页面上添加多个机构,每个机构都可以
进行了多次培训。
因此视图模型将是包含培训列表的机构列表。
我将有一个按钮,允许他们添加多个机构和机构内
部分另一个按钮,允许他们添加多个培训。
关于回发方法我是否只是循环遍历模型中的机构,并为每个机构循环遍历其培训列表以将它们保存到数据库中?
我是 MVC 的新手,想确保我了解如何实现我需要构建的复杂视图。
我需要允许用户在一个页面上添加多个机构,每个机构都可以
进行了多次培训。
因此视图模型将是包含培训列表的机构列表。
我将有一个按钮,允许他们添加多个机构和机构内
部分另一个按钮,允许他们添加多个培训。
关于回发方法我是否只是循环遍历模型中的机构,并为每个机构循环遍历其培训列表以将它们保存到数据库中?
您可能想改用这样的控制器:
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
}
}
也就是说,您传递给视图的模型不会被浏览器持久化——而是在服务器生成响应时短暂地存在于服务器内存中。
但是,在上面的示例中,您可以创建一个视图,该视图使用例如 jquery 通过 JSON 从服务器加载模型,然后您可以在页面的整个生命周期内将其保留在浏览器中。当用户对机构或机构进行修改时,您可以使用上述 Save() 之类的方法将新数据或数据更改发送到服务器以保存到数据库中。