从复杂视图中保存数据

时间:2012-08-08 15:55:31

标签: asp.net-mvc-3

我是MVC的新手,希望确保我了解如何应用我需要构建的复杂视图。

我需要允许用户在页面上添加多个机构,每个机构都可以

有多次培训。

所以视图模型将是一个包含训练列表的机构列表。

我将有一个按钮,允许他们在机构内添加多个机构

另一个按钮,允许他们添加多个培训。

关于回发方法我是否只是循环遍历模型中的机构 并为每个机构循环通过它的培训列表将它们保存到数据库中?

1 个答案:

答案 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()方法将新数据或数据更改发送到服务器以保存到数据库。