Asp.net MVC 5:使用javascript在模式对话框中使用CRUD

Asp.net MVC 5:使用javascript在模式对话框中使用CRUD,javascript,c#,asp.net-mvc-5,crud,Javascript,C#,Asp.net Mvc 5,Crud,我是Asp.NETMVC5中的newebie 所以,我有一个简单的项目,我使用asp.net。我有一个对象名为: 对象{Id,code,Name} 我想列出网格中的对象,进行编辑、添加和删除。 我能够显示列表并添加新对象。 这些操作在模态对话框中。 我现在有一些问题: 如何将对象发送到动作控制器,然后在选择对象时使用javascript将其显示或编辑到模式对话框中 第二张图片是当我单击“添加新对象”时,它显示了模式对话框,所有操作都与“添加”配合良好,但与其他操作不配合 我的代码 对象控制

我是Asp.NETMVC5中的newebie 所以,我有一个简单的项目,我使用asp.net。我有一个对象名为:
对象{Id,code,Name}

我想列出网格中的对象,进行编辑、添加和删除。 我能够显示列表并添加新对象。 这些操作在模态对话框中。 我现在有一些问题:

  • 如何将对象发送到动作控制器,然后在选择对象时使用javascript将其显示或编辑到模式对话框中
  • 第二张图片是当我单击“添加新对象”时,它显示了模式对话框,所有操作都与“添加”配合良好,但与其他操作不配合
  • 我的代码

    • 对象控制器:

          public ActionResult AddObject()
          {
             if (Request.IsAjaxRequest())
                 return PartialView(dd);
             return View(dd);
          }
      
      [HttpPost]
      public ActionResult AddObject(ModelObject model)
      {
          /* Working Code */
      
      }
      
    • AddObject局部视图:

              @using (Ajax.BeginForm("AddObject", "Object",
                  new AjaxOptions
                  {
                      HttpMethod = "POST",
                      UpdateTargetId = "msgAdd",
                      OnSuccess = "addSuccess",
                      OnFailure = "addFailure"
                  },
                  new { @class = "form-horizontal" }))
              {
                  @Html.ValidationSummary(true);
      
                  <div class="row" style="padding: 5px 0 5px 0">
                      <div class="col-lg-12">
      
                          <div class="col-lg-12 border no-margin" style="padding:10px 0px 10px 0 !important">
                              <div class="form-group" style="align-content:center">
      
                                  <label class="col-sm-4 control-label">Code  </label>
                                  <div class="col-lg-6">
                                      @Html.TextBoxFor(m => m.Code, new { @class = "form-control", placeholder = "Code" })
                                      @Html.ValidationMessageFor(m => m.Code)
                                  </div>
                                  <label class="col-sm-4 control-label">Libellé  </label>
                                  <div class="col-lg-6">
                                      @Html.TextBoxFor(m => m.Name, new { @class = "form-control", placeholder = "Libellé " })
                                      @Html.ValidationMessageFor(m => m.Name)
                                  </div>
                              </div>
      
                          </div>
                      </div>
                  </div>
                  <div class="hr-line-solid no-margin"></div>
                  <div class="row" style="padding: 5px 0 5px 0">
                      <div class="col-sm-1 col-sm-offset-4">
                          <button type="reset" class="btn btn-outline btn-primary"><i class="icon-refresh icon-white"></i> Réinitialiser</button>
                      </div>
                      <div class="col-sm-3 col-sm-offset-4">
                          <button type="reset" class="btn btn-default right" data-dismiss="modal">Annuler</button>
                          <input type="submit" value="Enregistrer" class="btn btn-success right" />
                      </div>
                  </div>
                  <div id="msgAdd" style="display:none">
      
                  </div>
              }
      
          </div>
      

      @使用(Ajax.BeginForm(“AddObject”,“Object”,
      新选择
      {
      HttpMethod=“POST”,
      UpdateTargetId=“msgAdd”,
      OnSuccess=“addSuccess”,
      OnFailure=“addFailure”
      },
      新的{@class=“form horizontal”})
      {
      @Html.ValidationSummary(true);
      代码
      @TextBoxFor(m=>m.Code,新的{@class=“formcontrol”,placeholder=“Code”})
      @Html.ValidationMessageFor(m=>m.Code)
      利伯莱
      @TextBoxFor(m=>m.Name,新的{@class=“formcontrol”,placeholder=“libelle”})
      @Html.ValidationMessageFor(m=>m.Name)
      Ré初始化器
      环空器
      }
      
    • ListObjects视图:

        <tbody>
         @foreach (var m in Model.objects)
             {  
      <tr class="gradeX">
      <td id="idObject" style="display:none;"><span class="hideextra">@m.Id</span></td>
        <td><span class="hideextra">@m.Code</span></td>
        <td><span class="hideextra">@m.Name</span></td>
      
        <td class="infont">
            <center>
                <a id="btnEdit"><i class="fa fa-pencil-square-o text-"></i></a>
                <a href="#"><i class="fa fa-trash-o text-danger"></i></a>
                <a href="#"><i class="fa fa-search text-navy"></i></a>
            </center>
        </td>
      </tr>
      }
      </tbody>
      
      
      @foreach(Model.objects中的var m)
      {  
      @m、 身份证
      @m、 代码
      @m、 名字
      }
      
    • Javascript: 1-加入:

      $(文档).ready(函数(){ //jQuery.noConflict(); $(“#btn”)。单击(函数(){ var url=“AddObject”;//指向控制器的url $.get(url、函数(数据){ 美元(“#saiiejdiag”)。可拖动({ 句柄:“.modal头” }); $(“#saiiejdiag”).resizeable(); $(“#saiiejdiag”).html(数据); 美元(“#saiiejdiag”).modal(“show”)

      $('saiiejdiag').on('show.bs.modal',function(){
      $('.select',this.select();
      });
      $('.i-checks').iCheck({
      checkboxClass:'icheckbox_square-green',
      无线电课堂:“伊拉迪奥广场-绿色”,
      });
      });
      });
      });
      

    现在我想要同样的方法,但编辑和显示模型上的obecjt,我怎么能做到这一点

    看起来你只是在使用(Ajax.BeginForm(“AddObecjt”,“Obecjt”,“Obecjt”,“)的
    @中有一个打字错误,应该改为使用(Ajax.BeginForm(“AddObject”,“Object”,“
    ),因为名称必须匹配)。@DavidPine当我做了一些简化的更改时,这是一个错误
                    $('#saisieJDiag').on('shown.bs.modal', function () {
                        $('.chosen-select', this).chosen();
                    });
                    $('.i-checks').iCheck({
                        checkboxClass: 'icheckbox_square-green',
                        radioClass: 'iradio_square-green',
                    });
                });
    
            });
        });
    </script>