MVC问题:注册表单,多个表

时间:2015-06-04 03:00:55

标签: sql-server asp.net-mvc asp.net-mvc-4 visual-studio-2013

大家好日子!

我的系统VS2013,SQL Server 2012管理服务器的一些背景知识。

所以我仍然在研究我的MVC项目,目前我还遇到了另一个问题。

以前我有一个包含个人信息(姓名,DOB,地址等)的员工表,现在我添加了另一个包含工作相关信息的表格(例如职位,雇用日期等)

我创建了两个模型和两个视图,但我的用户希望在单个表单中创建一个新员工。我需要将我的工作信息文本字段添加到我的个人信息视图创建页面中。

我已经尝试了元组

 "@model Tuple<blah.Models.PersonalInfo, blah.Models.WorkInfo>;"

到目前为止,我能够在视图中生成字段,但我想问一下,如何将用户输入的信息发送回表中以添加新员工。

(也就是说,用户点击&#34;创建&#34;表格能够将输入的数据封装到他们独立的&#34;模型&#34;并查询我的数据库以添加新人)

1 个答案:

答案 0 :(得分:1)

我建议创建一个ViewModel而不是传递一个元组。

public class EmployeesViewModel
{
    public PersonalInfo PersonalInfo { get ;set; }
    public WorkInfo WorkInfo { get; set; }
}

然后在控制器中构建ViewModel并将其传递给View。

public  ActionResult WorkAction()
{
    var personalInfo = new PersonalInfo();
    var workInfo = new WorkInfo();

    var viewModel = new EmployeesViewModel
    {
        viewModel.PersonalInfo = personalInfo,
        viewModel.WorkInfo = workInfo
    };
    return View(viewModel);
}

在视图中使用以下模型:

@model EmployeesViewModel

保存时,ViewModel将传递给控制器​​。

正如Stephen Muecke的评论中所提到的,您可以根据视图模型属性初始化您的2个数据模型。