无法使用asp.net将数据添加到数据库mvc
问题描述:
我无法将我的数据添加到数据库! 我的代码是正确的,我没有任何错误或警告! 我尝试了与另一个模型和另一个控制器相同的代码,它的工作原理,但与此模型和控制器它不起作用! 我即将失去我的心:(无法使用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();
}
}
}
答
改变这一行,因为这再试,
@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
页面提交时是否调用控制器? –
当您的视图呈现时,您在源代码中看到的表单操作是什么? – elolos
你是否在'if(ModelState.IsValid)'中打断点? – BrunoLM