2017-06-26 36 views
0

我的問題:如何解決Ajax.BeginForm調用兩次使用asp.net mvc的

  1. 我有一個主網頁的某些字段,當用戶單擊使用Ajax.BeginForm我節省的細節,這是保存按鈕工作成功。

  2. 主窗體內部有一個按鈕(任務),當用戶點擊該按鈕時,部分窗口會打開,然後他們會填充一些細節。當部分窗口保存按鈕點擊自動主頁保存操作方法正在調用...首先它保存部分保存細節,然後立即其保存主頁面細節也然後我得到兩個時間保存成功的消息。

  3. 當主頁保存按鈕只點擊它應該保存主頁字段。當部分頁面保存按鈕單擊它應該保存我使用jQuery保存部分頁面字段僅(部分頁面

主頁:

 @using (Ajax.BeginForm("savePhase", "Search", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "ChmHeaderPage",OnSuccess= "OnSuccessMain" }, new { enctype = "multipart/form-data" })) 
     { 
      @Html.HiddenFor(model => model.ChangeRequestList.FirstOrDefault().changeId); 
      @Html.HiddenFor(model => model.ChangeRequestList.FirstOrDefault().Phase); 

      <div class="col-md-offset-0 panel-body">  
       <div class="form-group"> 
        @Html.LabelFor(model => model.Importance, htmlAttributes: new { @class = "col-md-3 control-label" }) 
        <div class="col-md-3"> 
         @Html.DropDownListFor(model => model.ImportanceVal, new SelectList(Model.Importance, "OptionId", "OptionName", Model.ImportanceVal), new { @class = "form-control", @Title = "Message Need to be Show" }) 
        </div> 

        @Html.LabelFor(model => model.Urgency, htmlAttributes: new { @class = "col-md-2 control-label" }) 
        <div class="col-md-3"> 
         @Html.DropDownListFor(model => model.UrgencyVal, new SelectList(Model.Urgency, "OptionId", "OptionName", Model.UrgencyVal), new { @class = "form-control", @Title = "Message Need to be Show" }) 
        </div> 
       </div> 

       <div class="col-md-12 "> 
        @Html.Label("Enter Task*") 
        <button type="button" id="Analysisbtn" class="btn btn-link " data-toggle="modal" data-target="#myModal">Select Task</button> 



        <!-- Modal --> 
        <div id="myModal" class="modal fade" role="dialog"> 
         <div class="modal-open strech-modal-dialog"> 

          <!-- Modal content--> 
          <div class="modal-content"> 
           <div class="modal-header"> 
            <button type="button" class="close" data-dismiss="modal">&times;</button> 
            <h4 class="modal-title">Analysis</h4> 
           </div> 
           <div class="modal-body"> 
            @Html.Partial("_TaskPage") 
           </div> 

          </div> 

         </div> 
        </div> 
        </div> 
        <!-- Form actions --> 
        <div class="row panel-body"> 
         <div class="col-md-12 text-center"> 
          <button type="submit" name="buttonValue" class="btn btn-danger" value="Close">Save & Close</button> 

          <button type="submit" name="buttonValue" class="btn btn-primary" value="Save">Save</button> 

         </div> 
        </div> 

       </div> 
     } 

部分頁:

 @model www.ChangeManagementTool.ViewModels.SearchViewModel 
     <div class="panel-group" id="accordion" role="tablist" aria- 
     multiselectable="true"> 
     <div class="panel panel-default"> 
     <div class="panel-heading" role="tab" id="headingOne"> 
     <h4 class="panel-title"> 
      <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> 
       <i class="more-less glyphicon glyphicon-plus"></i> 
       Task 
      </a> 
     </h4> 
    </div> 
    <div id="collapseOne" class="panel-collapse collapse first" role="tabpanel" aria-labelledby="headingOne"> 
     <div class="panel-body"> 

        <div class="table-responsive center-block" data-tab-content="@item.Key" style="display:@displayText"> 
         <table class="table table-responsive sena" [email protected]> 

          <tr> 
           <th>Department</th> 
           <th>Plant</th> 
           <th>Country</th> 
           <th>Responsibles</th> 
           <th>DueDate</th>         
          </tr> 

          <tbody> 

           @foreach (var analysisTask in item.Value) 
           { 

            <tr> 
             <td> 
              --DisplayFor code 
             </td> 
             <td> 
              --DisplayFor code 
             </td> 
             <td> 
              --DisplayFor code 
             </td> 
             <td> 
              --DisplayFor code 
             </td> 
             <td> 
              --DisplayFor code 
             </td> 

            </tr> 

           } 
           </tbody> 

         </table> 
        </div> 

       } 
       <div class="form-group"> 
        <div class="col-md-12 text-center"> 
         <button type="submit" id="btnSaveReal" class="btn btn-primary ">Save Task </button> 
        </div> 
       </div> 
      } 
     </div> 
    </div> 
</div> 

jquery保存編碼

    <script type="text/javascript"> 
         $('#btnSaveReal').click(function (e) { 

    var listex = []; 
    debugger; 
    $('#RealTask tbody tr').each(function (index, ele) { 
     var saveItem2 = { 
      ChangeId: $('#ChangeIdR').val(), 
      PlantId: $('#PlantIdR' + index).val(), 
      DepartmentId: $('#DepartmentIdR' + index).val(), 
      MstTaskId: $('#MstTaskIdR' + index).val(), 
      AffectedItemId: $('#AffectedItemIdR' + index).is(":checked") 
     } 
     listex.push(saveItem2); 
    }) 

    //Save Coding 
    var url = applicationRoot + '/Search/SaveRealizationTaskdetails'; 
    $.ajax({ 
     url: url, 
     type: "POST", 
     data: JSON.stringify({ 'objmodelRel': listex, actionR: 'AnalyzeRealize' }), 
     dataType: "json", 
     traditional: true, 
     contentType: "application/json; charset=utf-8", 
     success: function (Data) { 
      if (Data.status) { 
       alert(Data.responseText); 
      } else { 
       alert(Data.responseText); 
      } 
     }, 
     error: function() { 
      alert("An error has occured!!!"); 
     } 
    }); 
}); 

function toggleIcon(e) { 
    $(e.target) 
    .prev('.panel-heading') 
    .find(".more-less") 
    .toggleClass('glyphicon-plus glyphicon-minus'); 
} 
$('.panel-group').on('hidden.bs.collapse', toggleIcon); 
$('.panel-group').on('shown.bs.collapse', toggleIcon); 

控制器代碼:

public ActionResult savePhase(SearchViewModel objmodel, string buttonValue) 
    { 
    save code--------------- 
    return RedirectToAction("FetchChgReqDetails"); 
    } 

    public JsonResult SaveRealizationTaskdetails(List<ChangeRequestRealizationTask> objmodelRel, string actionR) 
    { 
     --save code  
     return new JsonResult { Data = new { status = true, responseText = "Successfuly saved!" }, JsonRequestBehavior= JsonRequestBehavior.AllowGet }; 
    } 
+0

改變局部視圖按鈕類型=「按鈕局部視圖數據「insted of type =」submit「然後檢查 並在主保存中發送包含部分查看數據的所有詳細信息 –

+0

哇!喬希。非常感謝。簡單的錯誤。我改變了type =按鈕。它的工作 – SENA

回答

1

根據您的問題,我會建議你,如果它有助於你試試下面這個。

首先改變局部視圖按鈕類型=「按鈕」而不是類型=「提交」

和主要形式提交發送的所有數據,包括使用AJAX

相關問題