2017-08-05 1 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]) 

そして、私のCustomerテーブルには次のようになります。

[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) 

私は、顧客テーブルと予約テーブルのためのモデルを作りました。

これが私の見解は、私がモデルを作ったこのビューのウェブサイト

@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

ビューから日付時刻ではなくコントローラに文字列を渡しています