2016-12-01 5 views
-1

Ich habe folgende Action in meinem ControllerParameter in einem MVC-Controller vorbei

  [HttpGetAttribute] 
    public ActionResult _UpdateAlertNote(int recordId) 
    { 
     DealActionUpdateAlertNoteViewModel vm = new DealActionUpdateAlertNoteViewModel(); 

     dtDeal_v10_r1.Manager objMan = new dtDeal_v10_r1.Manager(ref mobjSecurity); 
     dtDeal_v10_r1.Deal objDeal = default(dtDeal_v10_r1.Deal); 

     objDeal = objMan.GetDealObject(recordId, true); 

     vm.Message = objDeal.AlertMessage; 
     vm.IsDefaultStyle = objDeal.Alert_UseDefaultStyle; 
     vm.BackgroundColor = objDeal.Alert_BackgroundColor; 
     vm.FontColor = objDeal.Alert_FontColor; 
     vm.DealId = recordId; 

     return PartialView(vm); 
    } 

Auch die folgende Action

  [HttpPost] 
    public ActionResult _UpdateAlertNote(DealActionUpdateAlertNoteViewModel vm) 
    { 
     dtDeal_v10_r1.Manager objMan = new dtDeal_v10_r1.Manager(ref mobjSecurity); 

     objMan.UpdateAlertMessage(vm.DealId, vm.Message, vm.IsDefaultStyle, vm.FontColor, vm.BackgroundColor); 

     return this.PartialView("_action", vm.DealId); 

    } 

Wenn ich diesen Code ausführen es den "DealId" kommt als 0 in die Post.

Ich überprüfte die Get und die DealId wird in der vm.DealId gespeichert, wird aber nicht an die Post-Methode übergeben.

Ich bin mir nicht sicher, warum es nicht vorbei ist, könnte jemand mir dabei helfen.

**** EDIT json hinzugefügt ***

DealerSocket.TakeAction.updateDealAlertNote = function() { 
var controller = "/DealAction/_UpdateAlertNote?mDeal_ID="; 
var formId = "_UpdateDealAlertNoteFormElement"; 

DealerSocket.TakeAction.PostActionAndRefresh(formId, controller); 

};

+0

Wie rufen Sie die POST-Aktion an? ist es ein Ajax Anruf? – Aram

+0

Eigentlich ist die Postleitzahl, die ich habe, Teil eines Onclick-Ereignisses, das einen Ajax-Aufruf auslöst. – Jack

+1

Sie müssen ein Json-Objekt auffüllen und senden, das die DealActionUpdateAlertNoteViewModel-Klasse darstellt. Das ist das Stück, das du posten musst, damit wir helfen können. – Aram

Antwort

0

Wenn Sie ein HTML-Formularelement an eine POST-Aktion senden, müssen Sie sicherstellen, dass der Wert, den Sie an die Ansicht übergeben, in einem Formularelement gespeichert wird.

In diesem Fall von Ihnen Ihnen etwas benötigen:

<input type="hidden" value="@vm.DealId" /> 

im <form>-Tag, das Sie die Aktion ist Posting.

Nur Elemente innerhalb des Tags <form> werden serialisiert und an die Aktion gesendet.