数据未插入数据库中

时间:2017-05-17 06:03:02

标签: c# jquery asp.net-mvc

我正在开发一个ASP.Net MVC应用程序,并且在尝试更新数据库中的数据时遇到了一个奇怪的问题。当我点击提交按钮然后它显示没有错误但数据也没有被插入时我仍然是新的

基本上,当我尝试插入将内容区域链接到表单的数据时,更新有时会起作用,有时则不起作用。它工作正常,但我不知道为什么它停止工作,因为我插入了jquery验证,我直接从MVC应用程序查询数据库只是为了确保实际上做出了预期的更改在每种情况下,查询返回我希望看到的。但是当我查询表格时,我发现有时只会发生变化。

如何从我的MVC应用程序直接查询表显示更新已完成,而是否存在静默回滚或其他内容?这令人抓狂,任何帮助都会非常感激。

我也在使用kendo网格但是当我更新kendo网格数据库时更新但是当我想通过表单插入数据时。 这是我的控制器

控制器

     // GET: PersonalDetails/Create
        public ActionResult Create()
        {
            return View();
        }

        // POST: PersonalDetails/Create
        // To protect from overposting attacks, please enable the specific
properties you want to bind to, for
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include =
"AutoId,FirstName,LastName,Age,Active")] PersonalDetail personalDetail)
        {
            if (ModelState.IsValid)
            {
                db.PersonalDetails.Add(personalDetail);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(personalDetail);
        }

CREATE.CSHTML VIEW

    @model WebApplication1.Models.PersonalDetail

   @{
       ViewBag.Title = "Create";
   }

   <h2>Create</h2>

   @using (Html.BeginForm())
   {
       <text>

       First name: <input type="text" name="FirstName" />
       Last name: <input type="text" name="LastName" />
       <input type="submit" value="Submit" />
       </text>
   }

   @using (Html.BeginForm())
   {
       @Html.AntiForgeryToken()

       <div class="form-horizontal">
           <h4>PersonalDetail</h4>
           <hr />
           @Html.ValidationSummary(true, "", new { @class = "text-danger" })
           <div class="form-group">
               @Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class =
"control-label col-md-2" })
               <div class="col-md-10">
                   @Html.EditorFor(model => model.FirstName, new { htmlAttributes = new
{ @class = "form-control" } })
                   @Html.ValidationMessageFor(model => model.FirstName, "", new {
@class = "text-danger" })
               </div>
           </div>
           <div class="form-group">
               @Html.LabelFor(model => model.LastName, htmlAttributes: new { @class =
"control-label col-md-2" })
               <div class="col-md-10">
                   @Html.EditorFor(model => model.LastName, new { htmlAttributes = new
{ @class = "form-control" } })
                   @Html.ValidationMessageFor(model => model.LastName, "", new { @class
= "text-danger" })
               </div>
           </div>
           <div class="form-group">
               @Html.LabelFor(model => model.Age, htmlAttributes: new { @class =
"control-label col-md-2" })
               <div class="col-md-10">
                   @Html.EditorFor(model => model.Age, new { htmlAttributes = new {
@class = "form-control" } })
                   @Html.ValidationMessageFor(model => model.Age, "", new { @class =
"text-danger" })
               </div>
           </div>
           <div class="form-group">
               @Html.LabelFor(model => model.Active, htmlAttributes: new { @class =
"control-label col-md-2" })
               <div class="col-md-10">
                   <div class="checkbox">
                       @Html.EditorFor(model => model.Active)
@Html.ValidationMessageFor(model => model.Active, "", new {
@class = "text-danger" })
                   </div>
               </div>
           </div>
           <div class="form-group">
               <div class="col-md-offset-2 col-md-10">
                   <input type="submit" value="Create" class="btn btn-default" />
               </div>
           </div>
       </div>
    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>
    @section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

请帮帮我

1 个答案:

答案 0 :(得分:0)

我遇到了这类问题。 这可能是一个可能的原因。

您正在使用PersonalDetail model。有时jquery验证对某些模型属性有这样的问题。要检查哪些属性导致问题,您只需按照以下步骤操作即可。

  1. 填写表格
  2. 点击提交
  3. 转到检查中的Html元素
  4. 搜索input-validation-error
  5. 如果在html中找到此input-validation error,则此属性存在问题。