2016-12-01 3 views
-1

У меня есть следующее ActionResult в моем контроллерепередача параметров в контроллере MVC

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

Также следующие ActionResult

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

    } 

Когда я выполняю этот код его «DealId» появляется как 0 в Почта.

Я проверил, что Get и DealId хранятся в файле vm.DealId, но не передаются методу Post.

Я не уверен, почему это не проходит, может кто-то помочь мне с этим.

**** РЕДАКТИРОВАТЬ добавлен *** JSON

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

DealerSocket.TakeAction.PostActionAndRefresh(formId, controller); 

};

+0

Как вы называете действие POST? это вызов Ajax? – Aram

+0

На самом деле почтовый код, который у меня есть, является частью события onclick, которое вызывает вызов ajax. – Jack

+1

Вам нужно заполнить и отправить объект Json, представляющий класс DealActionUpdateAlertNoteViewModel. Это часть, которую вы должны опубликовать, чтобы мы могли помочь. – Aram

ответ

0

Когда вы отправляете элемент HTML Form в действие POST, вам необходимо убедиться, что значение, переданное в представлении, сохраняется в элементе Form.

В этом случае ваша вам потребуется что-то вроде:

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

внутри <form> тега, которые вы публикуете к действию.

Только элементы внутри тега <form> будут сериализованы и отправлены в действие.

Смежные вопросы