Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.net MVC 5向多个表添加数据_Asp.net Mvc_Entity Framework_Razor - Fatal编程技术网

Asp.net mvc ASP.net MVC 5向多个表添加数据

Asp.net mvc ASP.net MVC 5向多个表添加数据,asp.net-mvc,entity-framework,razor,Asp.net Mvc,Entity Framework,Razor,嗨,谢谢大家帮助我。我对ASP.NETMVC和EF非常陌生,我正在做一些真正的项目。如果有人能指导我如何将数据插入到SQL中具有一对多关系的两个表中,我将不胜感激。 我需要将多个族添加到一个行为案例中 tblCase[案例编号][案例编号] t家庭[家庭身份证][名字][姓氏][案例身份证] 完成在线教程后,我可以添加多个族,但我无法了解如何: 添加新案例->检索上次插入的案例\u id 单击“提交”按钮,添加具有最后一个插入案例id的所有族。 我的观点如下: @model List<Te

嗨,谢谢大家帮助我。我对ASP.NETMVC和EF非常陌生,我正在做一些真正的项目。如果有人能指导我如何将数据插入到SQL中具有一对多关系的两个表中,我将不胜感激。 我需要将多个族添加到一个行为案例中

tblCase[案例编号][案例编号] t家庭[家庭身份证][名字][姓氏][案例身份证] 完成在线教程后,我可以添加多个族,但我无法了解如何:

添加新案例->检索上次插入的案例\u id 单击“提交”按钮,添加具有最后一个插入案例id的所有族。 我的观点如下:

@model List<TestMVC.Family>

@{
ViewBag.Title = "BulkData";
Layout = "~/Views/Shared/_Layout.cshtml";
}

<style>
td {
   padding: 5px;
}
</style>
<div style="width:700px; padding:5px; background-color:white;">
@using (Html.BeginForm("BulkData", "Save", FormMethod.Post))
{
   @Html.AntiForgeryToken()
   @Html.ValidationSummary(true)

   if (ViewBag.Message != null)
    {
       <div style="border:solid 1px green">
           @ViewBag.Message
       </div>
    }

    <div id="dvCase">
       <table>
           <tr>
               <td>Case Name</td>
               <td><input type="text" value="" /></td>
           </tr>
           <tr>
               <td>Case No</td>
               <td><input type="text" value="" /></td>
           </tr>
       </table>
   </div>

   <div><a href="#" id="addNew">Add New</a></div>
   <table id="dataTable" border="0" cellpadding="0" cellspacing="0">
       <tr>
           <th>First Name</th>
           <th>Last Name</th>
           <th>Case Id</th>
           <th></th>
       </tr>
       @if (Model != null && Model.Count > 0)
        {
           int j = 0;
           foreach (var i in Model)
            {
               <tr style="border:1px solid black">
                   <td>@Html.TextBoxFor(a => a[j].firstName)</td>
                   <td>@Html.TextBoxFor(a => a[j].lastName)</td>
                   <td>@Html.TextBoxFor(a => a[j].case_id)</td>
                   <td>
                       @if (j > 0)
                        {
                           <a href="#" class="remove">Remove</a>
                        }
                   </td>
               </tr>


                        j++;
            }
        }
   </table>
   <input type="submit" value="Save" />
}
</div>
我的控制器看起来像:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TestMVC.Controllers
{
 public class SaveController : Controller
 {
   //
   // GET: /Save/
   public ActionResult BulkData()
    {
Case bc = new Case {case_id=0,case_no=""};           
// This is only for show by default one row for insert data to the database
       List<Family> ci = new List<Family> { new Family { family_id = 0, firstName = "", lastName = "", case_id= 0 } };
       return View(ci);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
   public ActionResult BulkData(List<Family> ci)
    {
       if (ModelState.IsValid)
        {
           using (FamilyContext dc = new FamilyContext())
            {
               var behaveCase = new Case();
               behaveCase.case_no = "1234";
               dc.Cases.add(behaveCase);
               foreach (var i in ci)
                {
                   i.Case = behaveCase;                    
                   dc.Families.Add(i);
                }
                dc.SaveChanges();
                ViewBag.Message = "Data successfully saved!";
                ModelState.Clear();
                ci = new List<Family> { new Family { family_id = 0, firstName = "", lastName = "", case_id = 0 } };
            }
        }
       return View(ci);
    }
   }
}
还有我的模型定义

namespace TestMVC
{
 using System;
 using System.Collections.Generic;

public partial class Case
{
   public Case()
    {
       this.Families = new HashSet<Family>();
    }

    public int case_id { get; set; }
   public string case_no { get; set; }

    public virtual ICollection<Family> Families { get; set; }
}
}

namespace TestMVC
{
using System;
using System.Collections.Generic;

public partial class Family
{
   public int family_id { get; set; }
   public string firstName { get; set; }
   public string lastName { get; set; }
   public int case_id { get; set; }

    public virtual Case Case { get; set; }
}
}

此处添加的“i”模型:dc.Families.Addi;调用dc.SaveChanges时,它将使用主键修改“i”:

if (ModelState.IsValid)
    {
       using (FamilyContext dc = new FamilyContext())
        {
           var behaveCase = new Case();
           behaveCase.case_no = "1234";
           dc.Cases.add(behaveCase);
           dc.SaveChanges(); // Save Changes Occurred. primary key in inserted in behaveCase
           int pk = behaveCase.case_id;  // You can get primary key of your inserted row
           foreach (var i in ci)
            {
               i.Case = behaveCase;                    
               dc.Families.Add(i);
               dc.SaveChanges(); // Save Changes Occured. Primary key of i is inserted
               int pkFam = i.family_id; // You can get primary key of your inserted row
            }

            ViewBag.Message = "Data successfully saved!";
            ModelState.Clear();
            ci = new List<Family> { new Family { family_id = 0, firstName = "", lastName = "", case_id = 0 } };
        }
    }

向我们展示您的模型定义