2017-06-26 1 views
0

Meine Frage:Wie Ajax.BeginForm lösen zweimal mit asp.net mvc Aufruf

  1. ich eine Haupt-Seite haben einige Felder, wenn die Schaltfläche klicken Benutzer speichern mit Ajax.BeginForm i die Details bin Speichern ist dies erfolgreich arbeiten.

  2. Innerhalb Hauptformular gibt es eine Schaltfläche (Aufgabe), wenn Benutzer klicken Sie auf diese Schaltfläche Teilfenster wird geöffnet, dann werden sie einige Details füllen. Wenn Teilfenster speichern Schaltfläche klicken automatisch Startseite Aktion Aktion Methode aufrufen ... zuerst speichern Teil speichern Details dann sofort seine Hauptseite Details speichern, dann bekomme ich zwei Mal erfolgreich Nachricht gespeichert.

  3. Wenn die Schaltfläche "Speichern auf der Hauptseite" gedrückt wird, sollten nur die Hauptseitenfelder gespeichert werden. wenn Teil Seite Speichern klicken sollte es nur eine teilweise Seitenfelder speichern (Teil Seite speichern i jquery

Hauptseite bin mit:

 @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> 
     } 

Teil. Seite:

 @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 Save Codierung

    <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); 

Controller-Code:

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

ändern Teilansicht Taste type = "button

Erster Wechsel Teilansicht Taste type = "button" anstelle von type = "submit"

und auf Hauptformular einreichen alle Daten, einschließlich Teilansicht Daten senden "statt type =" submit "und dann check und bei main save sende alle details in ajax inklusive teilansicht daten –

+0

wow! joshi. ich danke dir sehr. einfacher Fehler. Ich habe Typ = Knopf geändert. es funktioniert – SENA

Antwort

1

Wie pro Ihre Fragen, die ich Ihnen vorschlagen, darunter zu versuchen, wenn es für Sie hilfreich. mit AJAX

Verwandte Themen