Asp.net mvc 在MVC5实体框架中使用一个视图处理多个表并执行动态视图
我有一个下拉框,绑定了两个值:passport和pan 当第一次加载页面时,我希望获得一个视图以进入fname和lname。下面是我的下拉列表Asp.net mvc 在MVC5实体框架中使用一个视图处理多个表并执行动态视图,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我有一个下拉框,绑定了两个值:passport和pan 当第一次加载页面时,我希望获得一个视图以进入fname和lname。下面是我的下拉列表如果我从下拉列表中选择passport,我想获取输入护照签发日期、到期日期等的字段如果我选择pan card,我想获取选择pan卡号、到期日期等的字段 所有这些都应该在一个视图中发生。我使用的是实体框架最后,我想将详细信息保存到单独的表中 请建议 为视图创建一个viewmodel,并使用该viewmodel将视图的所有值发布到控制器 在控制器上获取所有表单
如果我从下拉列表中选择passport,我想获取输入护照签发日期、到期日期等的字段
如果我选择pan card,我想获取选择pan卡号、到期日期等的字段 所有这些都应该在一个视图中发生。我使用的是实体框架
最后,我想将详细信息保存到单独的表中
请建议 为视图创建一个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
@InputFor(m=>m.property1)
//所有其他表单字段
@model MyViewModel
<form>
@Html.InputFor(m=>m.property1)
//all other form fields
</form>