在mvc 5实体框架中使用一个视图处理多个表并执行动态视图

时间:2015-12-31 15:57:15

标签: asp.net-mvc entity-framework

我有一个下拉框,我绑定了2个值:护照 pan

首次加载页面时,我想让一个视图输入 fname lname 。下面我有下拉菜单。
如果我从下拉列表中选择护照,我想让字段输入护照签发日期,到期日等。
如果我选择 pan card ,我想获得字段选择pan卡号,有效期等。

所有这些都应该在一个视图中发生。我正在使用实体框架。
最后我想将细节保存到单独的表格中。

请建议!

1 个答案:

答案 0 :(得分:0)

为您的视图创建一个viewmodel,并使用该viewmodel将视图的所有值发布到控制器  一旦获得控制器的所有表单字段,就可以创建每个表(实体)的实例,并在viewmodel中获取映射值。

[HttpPost]
    public ActionResult ActionName(MyViewModel model)
    {
        if(ModelState.IsValid)
        {
            // table 1(Table1Entity is your class)
          Table1Entity a = Table1Entity();
           a.property = model.property1;
            db.Table1Entity.add(a);
          //  db.SaveChanges();

            // table 2
            Table2Entity b =Table2Entity();
            b.property= model.property2;
             db.Table2Entity.add(b);
            db.SavChanges();

  // so on for all other tables entity

  return   RedirectToAction("Index");
        }
        return View(model);
    }

您的viewmodel

 Public class MyViewModel{

       public string property1{get; set;}

       public string property2{get;set;}
 }

您的视图(指向控制器的表单,添加操作和控制器名称)

  @model MyViewModel

 <form>
    @Html.InputFor(m=>m.property1)
    //all other form fields
 </form>