2017-08-05 72 views
0

我正在制作一个露营程序。客户可以在网站上预订,接待员可以接受并在客户到达时向客户添加更多信息(如护照号码)。填写多表格一个MVC C#

我的预约表看起来是这样的:

[ID]   INT   IDENTITY (1, 1) NOT NULL, 
[StartDatum] DATE   NULL, 
[EindDatum] DATE   NULL, 
[Plaats]  VARCHAR (50) NULL, 
[Status]  VARCHAR (50) NULL, 
[KlantID] INT   NULL, 
CONSTRAINT [FK_Reserveringen_ToTable] FOREIGN KEY ([KlantID]) REFERENCES [dbo].[Klants] ([Id]) 

而我的客户表看起来像这样:

[Id]    INT   IDENTITY (1, 1) NOT NULL, 
[Voornaam]   VARCHAR (50) NOT NULL, 
[Achternaam]  VARCHAR (50) NOT NULL, 
[Adres]    VARCHAR (50) NOT NULL, 
[Postcode]   VARCHAR (50) NULL, 
[Plaats]   VARCHAR (50) NULL, 
[Telefoon]   INT   NOT NULL, 
[Geboortedatum]  INT   NULL, 
[Documentnr]  INT   NULL, 
[Verificatiemiddel] VARCHAR (50) NULL, 
[Emailadres]  VARCHAR (50) NULL, 
PRIMARY KEY CLUSTERED ([Id] ASC) 

我有一个做customer表和保留表的典范。

这是我的看法怎么看起来像预订的网站

@model Camping.Domain.Entities.Reservering 

<div class="panel panel-success"> 
    <div class="panel-heading text-center"><h4>RSVP</h4></div> 
    <div class="panel-body"> 

     @using (Html.BeginForm("KlantToevoegen", "Klant", FormMethod.Post, new { enctype = "mulipart/formdata" })) 
     { 
      @Html.ValidationSummary() 
      <div class="form-group"> 
       <label>Voornaam:</label> 
       @Html.TextBoxFor(x => x.Voornaam, new { @class = "form-control" }) 
      </div> 
      <div class="form-group"> 
       <label>Achternaam:</label> 
       @Html.TextBoxFor(x => x.Achternaam, new { @class = "form-control" }) 
      </div> 
      <div class="form-group"> 
       <label>Emailadres:</label> 
       @Html.TextBoxFor(x => x.Emailadres, new { @class = "form-control" }) 
      </div> 
      <div class="form-group"> 
       <label>Telefoonnummer:</label> 
       @Html.TextBoxFor(x => x.Telefoonnnummer, new { @class = "form-control" }) 
      </div> 
      <div class="form-group"> 
       <label>Datum aankomst:</label> 
       @Html.TextBoxFor(x => x.StartDatum, new { @class = "form-control" }) 
      </div> 
      <div class="form-group"> 
       <label>Datum vertrek:</label> 
       @Html.TextBoxFor(x => x.EindDatum, new { @class = "form-control" }) 
      </div> 
      <div class="form-group"> 
       <label>Plaats:</label> 
       @Html.TextBoxFor(x => x.Plaats, new { @class = "form-control" }) 
      </div> 
      <div class="text-center"> 
       <input class="btn btn-success" type="submit" value="Klant toevoegen" /> 
      </div> 
     } 
    </div> 
</div> 

这种观点我做了一个模型上。那就是:

namespace Camping.Domain.Entities 
    { 
    public class Reservering 
    { 
     public string Voornaam { get; set; } 
     public string Achternaam { get; set; } 

     public int Telefoonnnummer { get; set; } 
     public string Emailadres { get; set; } 

     public string Plaats { get; set; } 

     public DateTime StartDatum { get; set; } 

     public DateTime EindDatum { get; set; } 
    } 
} 

而且控制器类:

using Camping.Domain.Abstract; 
using Camping.Domain.Entities; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace Camping.WebUII.Controllers 
{ 
    public class ReserveringController : Controller 
    { 
     private IRepository repository; 

     public ReserveringController(IRepository iRepository) 
     { 
      this.repository = iRepository; 
     } 

     [HttpGet] 
     public ViewResult ReserveringAanmaken() 
     { 
      return View(); 
     } 

     [HttpPost] 
     public ActionResult Add(Reservering model) 
     { 
      var klant = new Klant 
      { 
       Voornaam = model.Voornaam, 
       Achternaam = model.Achternaam, 
       Emailadres = model.Emailadres, 
       Telefoon = model.Telefoonnnummer 
      }; 

      var reservering = new Reserveringen 
      { 
       StartDatum = model.StartDatum, 
       EindDatum = model.EindDatum, 
       Plaats = model.Plaats 
      }; 

      repository.KlantToevoegen(klant); 
      repository.ReserveringToevoegen(reservering); 

      return View(); 

     } 
    } 
} 

这个解决方案没有工作,出于某种原因,感觉不对我在做什么。任何人都可以将我指向正确的方向吗?了解更多信息。随意问:)

当我通过视图添加日期。我只填写客户表,而不是预订表。

+0

它是如何不工作,完全? – vorou

+0

我收到一个错误:在EntityFramework.dll中发生了类型为“System.Data.Entity.Infrastructure.DbUpdateException”的异常,但未在用户代码中处理 附加信息:更新条目时发生错误。详情请参阅内部例外。 内部例外?我似乎无法找到它们。 但是我觉得你在正确的轨道上? – valheru

+0

用调试器运行它,等待发生异常。您将能够看到异常详细信息,其中会有'InnerException'属性。在那里你会找到更有帮助的描述。 – vorou

回答

0

你传递一个字符串从视图到控制器不是一个日期时间