2016-04-14 117 views
0

我无法将我的数据添加到数据库! 我的代码是正确的,我没有任何错误或警告! 我尝试了与另一个模型和另一个控制器相同的代码,它的工作原理,但与此模型和控制器它不起作用! 我即将失去我的心:(无法使用asp.net将数据添加到数据库mvc

这是我的看法代码:

@model mvc_depences.Models.Projet 
 
@{ 
 
    Layout = "~/Views/Shared/admin.cshtml"; 
 
} 
 
<link href="~/Content/bootstrap/css/bootstrap.css" rel="stylesheet" /> 
 
<link href="~/Content/bootstrap/css/bootstrap.min.css" rel="stylesheet" /> 
 
@using (Html.BeginForm()) 
 
{ 
 
    @Html.AntiForgeryToken() 
 
    <fieldset> 
 
     <br /> 
 
     <legend class="legend">Ajouter Un Nouveau Projet</legend> 
 
     <div class="panel"> 
 
      <div class="panel-body"> 
 
       <br /> 
 
       <div class="col-md-6 col-sm-6"> 
 
        <div class="row"> 
 
         <div class="form-group"> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <label class="cke_label" for="NomP">Nom</label> 
 
          </div> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <input type="text" class="form-control" placeholder="Nom Projet" data-val="true" required="" data-val-length="Taille max est 50 caracteres !! " data-val-length-max="50" id="nom" name="nom"> 
 
           <span class="field-validation-valid text-danger" data-valmsg-for="nom" data-valmsg-replace="true"></span> 
 
          </div> 
 
         </div> 
 
         <br /><br /> 
 
         <!--Date Debut !!--> 
 
         <div class="form-group"> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <label class="cke_label" for="DateDebut">Date Debut</label> 
 
          </div> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <span class="k-widget k-datepicker k-header text" style="width: 245px;"> 
 
            <span class="k-picker-wrap k-state-default"> 
 
             <input data-val="true" class="text k-input" style="width: 100%;" data-val-date="The field DateDebut must be a date." data-val-required="Le champ DateDebut est requis." id="DateDebut" name="DateDebut" type="text" data-role="datepicker" role="combobox" aria-expanded="false" aria-owns="DateDebut_dateview" aria-disabled="false" aria-readonly="false"> 
 
             <span unselectable="on" class="k-select" role="button" aria-controls="DateDebut_dateview"> 
 
              <span unselectable="on" class="k-icon k-i-calendar">select</span> 
 
             </span> 
 
            </span> 
 
           </span> 
 
           <script> 
 
            jQuery(function() { 
 
             jQuery("#DateDebut").kendoDatePicker({ "format": "yyyy-MM-dd", "min": new Date(1950, 0, 1, 0, 0, 0, 0), "max": new Date(2000, 11, 31, 0, 0, 0, 0) }); 
 
            }); 
 
           </script> 
 
           <span class="text" data-valmsg-for="DateDebut" data-valmsg-replace="true"></span> 
 
          </div> 
 
         </div> 
 
         <br /><br /> 
 
         <!--Date fin Prevue !!--> 
 
         <div class="form-group"> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <label class="cke_label" for="DateFinPrevue">Date Fin Prevue</label> 
 
          </div> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <span class="k-widget k-datepicker k-header text" style="width: 245px;"> 
 
            <span class="k-picker-wrap k-state-default"> 
 
             <input data-val="true" class="text k-input" style="width: 100%;" data-val-date="The field DateFinPrevue must be a date." data-val-required="Le champ DateFinPrevue est requis." id="DateFinPrevue" name="DateFinPrevue" type="text" data-role="datepicker" role="combobox" aria-expanded="false" aria-owns="DateFinPrevue_dateview" aria-disabled="false" aria-readonly="false"> 
 
             <span unselectable="on" class="k-select" role="button" aria-controls="DateFinPrevue_dateview"> 
 
              <span unselectable="on" class="k-icon k-i-calendar">select</span> 
 
             </span> 
 
            </span> 
 
           </span> 
 
           <script> 
 
            jQuery(function() { 
 
             jQuery("#DateFinPrevue").kendoDatePicker({ "format": "yyyy-MM-dd", "min": new Date(1950, 0, 1, 0, 0, 0, 0), "max": new Date(2000, 11, 31, 0, 0, 0, 0) }); 
 
            }); 
 
           </script> 
 
           <span class="text" data-valmsg-for="DateFinPrevue" data-valmsg-replace="true"></span> 
 
          </div> 
 
         </div> 
 
         <br /><br /> 
 
         <!--Date fin Reele !!--> 
 
         <div class="form-group"> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <label class="cke_label" for="DateFinReele">Date Fin Reele</label> 
 
          </div> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <span class="k-widget k-datepicker k-header text" style="width: 245px;"> 
 
            <span class="k-picker-wrap k-state-default"> 
 
             <input data-val="true" class="text k-input" style="width: 100%;" data-val-date="The field DateFinReele must be a date." data-val-required="Le champ DateFinReele est requis." id="DateFinReele" name="DateFinReele" type="text" data-role="datepicker" role="combobox" aria-expanded="false" aria-owns="DateFinReele_dateview" aria-disabled="false" aria-readonly="false"> 
 
             <span unselectable="on" class="k-select" role="button" aria-controls="DateFinReele_dateview"> 
 
              <span unselectable="on" class="k-icon k-i-calendar">select</span> 
 
             </span> 
 
            </span> 
 
           </span> 
 
           <script> 
 
            jQuery(function() { 
 
             jQuery("#DateFinReele").kendoDatePicker({ "format": "yyyy-MM-dd", "min": new Date(1950, 0, 1, 0, 0, 0, 0), "max": new Date(2000, 11, 31, 0, 0, 0, 0) }); 
 
            }); 
 
           </script> 
 
           <span class="text" data-valmsg-for="DateFinReele" data-valmsg-replace="true"></span> 
 
          </div> 
 
         </div> 
 
         <br /><br /> 
 
         @*<div class="form-group"> 
 
           <div class="col-md-6 col-sm-6"> 
 
            <label class="cke_label" for="Description">Description</label> 
 
           </div> 
 
           <div class="col-md-6 col-sm-6"> 
 
            <textarea rows="6" cols="40"></textarea> 
 
           </div> 
 
          </div>*@ 
 
         <br /><br /> 
 
         <div class="form-group"> 
 
          <div class="col-md-6 col-sm-6"> 
 
           <label class="cke_label" for="etat">Etat</label> 
 
          </div> 
 
          <div class="input-group"> 
 
           <div align="justify"> 
 
            <br> 
 
            <input type="radio" name="group2" value="En_Cours" checked> En Cours<br> 
 
            <input type="radio" name="group2" value="Termine"> Terminé<br> 
 
            <input type="radio" name="group2" value="Annule"> Annulé<br> 
 
           </div> 
 
          </div> 
 
         </div> 
 
         <div class="row" style="margin-left:400px;margin-top:120px"> 
 
          <div class="col-md-12" style="width:350px"> 
 
           <input id="Submit" class="btn btn-default" name="actionType" type="submit" value="Engeristrer" style="width:150px" /> 
 
          </div> 
 
         </div> 
 
        </div> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    </fieldset> 
 
}

我的控制器代码:

using System; 
 
using System.Collections.Generic; 
 
using System.Data; 
 
using System.Data.Entity; 
 
using System.Linq; 
 
using System.Net; 
 
using System.Web; 
 
using System.Web.Mvc; 
 
using Kendo.Mvc.Extensions; 
 
using Kendo.Mvc.UI; 
 
using mvc_depences.Models; 
 

 
namespace mvc_depences.Controllers 
 
{ 
 
    public class ProjetController : Controller 
 
    { 
 
     private BD_GestionDepences db = new BD_GestionDepences(); 
 
     public ActionResult CreateProjet() 
 
     { 
 
      return View(); 
 
     } 
 
     [HttpPost] 
 
     [ValidateAntiForgeryToken] 
 
     public ActionResult CreateProjet([Bind(Include = "idProjet,nomP,DateDebut,DateFinPrevue,DateFinReele,etat")] Projet projet) 
 
     { 
 
      if (ModelState.IsValid) 
 
      { 
 
       db.Projets.Add(projet); 
 
       db.SaveChanges(); 
 
       return RedirectToAction("Index"); 
 
      } 
 
      return View(projet); 
 
     } 
 

 
     public ActionResult Index() 
 
     { 
 
      return View(); 
 
     } 
 
    } 
 
}

+0

页面提交时是否调用控制器? –

+0

当您的视图呈现时,您在源代码中看到的表单操作是什么? – elolos

+1

你是否在'if(ModelState.IsValid)'中打断点? – BrunoLM

回答

0

改变这一行,因为这再试,

@using (Html.BeginForm("CreateProjet","Projet",FormMethod.Post)) 

编辑 - 通过消除绑定可以试试这个,这将工作

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult CreateProjet(Projet projet) 
{ 
    if (ModelState.IsValid) 
    { 
     db.Projets.Add(projet); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 
    return View(projet); 
} 

这可能不是可能的,但还是检查连接字符串,它影响相同的数据库或其他数据库。

+3

为什么你需要这样做 - 所有这些值都是默认 - 它完全不必要。 –

+1

我改变了它,它没有工作:\! – kokomoi