参数传入MVC控制器

时间:2016-12-01 18:34:06

标签: asp.net-mvc

我的控制器中有以下ActionResult

            [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”在Post中显示为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);

};

1 个答案:

答案 0 :(得分:0)

当您将HTML表单元素发布到POST操作时,您需要确保传递给视图的值存储在Form元素中。

在这种情况下你需要:

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

在您发布到操作的<form>标记内。

只有<form>标记内的元素才会被序列化并发送给Action。