Ajax 使用 mvc 开始形成 db 记录

Ajax begin form db record with mvc

提问人:yuksel 提问时间:12/27/2017 最后编辑:yuksel 更新时间:12/28/2017 访问量:55

问:

我创建了一个表单。我想做一个帖子保存方法。

他记录了两次相同的数据,但记录了两次。我该如何解决这个问题?

我必须解决双重注册问题。我按下了一次按钮。当我逐步完成调试时,它在同一行上重复了两次。当我以自上而下的方式控制数据库时,我看到你重复了。

HTML格式:

<div class="portlet-body form">
       @using (Ajax.BeginForm("TalepTurKaydet", "MasterEducationController",
         new AjaxOptions { HttpMethod = "post", OnSuccess = "TalepTurKaydet" },
                                                            new { @class = "" }))
        {
            @Html.ValidationSummary(true)
            <div class="form-body">
                <div class="row">               
                    <div class="col-md-12" style="margin-left: 20px">

                    <div class="col-md-6">
                        <div class="form-group">
                            <label class="control-label col-md-3">Açıklama: </label>
                            <div class="col-md-9">
                                <textarea id="Aciklama" name="Aciklama" class="col-md-12" style="resize: none;" rows="5" placeholder="Açıklama"></textarea>
                            </div>
                        </div>
                    </div>
                    <div class="clearfix"></div><br /><br />
                </div>
                <div class=" form-actions right">
                    <button type="button" class="btn green btnPrevious"><i class="fa fa-angle-double-left"></i>Geri</button>
                    <button id="talepOlustur" type="submit" class="btn blue"><i class="fa fa-check"></i> Talep Oluştur</button>
                </div>
            </div>
        }
    </div>

控制器:

public ActionResult MezuniyetBilgiKaydet(MezuniyetBilgi model)
        {
            List<MezuniyetBilgi> list = null;
            model.KullaniciId = GetUye().kullaniciID;
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(ApiAdress.API_URL);

                var responseTask = client.PostAsJsonAsync("apiMasterProgramEducation/MezuniyetBilgiKaydet", model);
                responseTask.Wait();

                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync<List<MezuniyetBilgi>>();
                    readTask.Wait();

                    list = readTask.Result;
                    model = list.FirstOrDefault();

                    return Json(new
                    {
                        Success = true,
                        data = model,
                        Message = SuccessMessage.MEZUNIYET_BILGISI_INSERT_MESSAGE,
                        JsonRequestBehavior.AllowGet
                    });

                }

            }
        }

应用程序接口:

   public IHttpActionResult MezuniyetBilgiKaydet(MezuniyetBilgi model)
        {
            List<MezuniyetBilgi> detay = new List<MezuniyetBilgi>();
            try
            {
                using (var ctx = new ktdbEntities())
                {
                    if (model != null)
                    {
                        var query = ctx.mezuniyetBilgisiEkle(model.KullaniciId, model.MezuniyetTarih, model.MezunOlduguOkul,
                            model.MezunOlduguFakulte, model.MezunOlduguBolum, (float)(model.MezuniyetNotu));

                        model.Output = true;
                        detay.Add(model);
                        return Ok(detay);
                    }

                }
            }
            catch (Exception e)
            {
                model.Output = false;
                model.Message = e.Message;
                detay.Add(model);

            }
            return Ok(detay);
        }
表单 asp.net-mvc-ajax html-post

评论

0赞 Nick.Mc 12/28/2017
哪条线?!那里有很多代码 - 不要让我们猜测。
0赞 Ross Bush 12/28/2017
所以除了你展示的那个之外,没有其他的帖子吗?
0赞 yuksel 12/28/2017
我解决了这个问题。只有一个帖子,但_Layout页面有多个jquery脚本路径,所以它是双重注册的。删除更多查询脚本已在查询中得到解决。

答: 暂无答案