小编fri*_*ide的帖子

返回操作作为另一个操作的结果

当我尝试从另一个操作返回一个操作时,我遇到了问题。我得到这样的东西:

public ActionResult Action (int param1, string param2)
{
    ActionViewModel vm = new ActionViewModel();
    vm.Param1Prop = param1;
    vm.Param2Prop = param2;

    return View(vm);
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Action (ActionViewModel vm)
{
    //Do Something...

    if (vm.DoItAgain)
    {
        return Action(vm.Param1Prop-1, vm.Param2Prop);
    }

    return View(vm);
}
Run Code Online (Sandbox Code Playgroud)

当该行return Action(vm.Param1Prop-1, vm.ParamProp);转到时Action(int param1, string param2),执行,一切看起来都很顺利。但不要。渲染结果看起来像是return View(vm)被执行了,所有的值都vm与 Post Action 中发送的值相同,而不是我传递的值return Action(vm.Param1Prop-1, vm.ParamProp);

我不确定为什么不起作用,返回的 ActionResult 被忽略了?第一个 Action 方法中的代码执行良好(我调试并在其中放入日志来检查它),并且第一个方法的返回是响应的结尾,那么为什么看起来该行从未发生过?我还尝试修改 PostAction 上的虚拟机,以查看是否以某种方式推断虚拟机。那也行不通。为了实现这一点,我放置了一个 RedirectToAction 而不是使用 return Action: RedirectToAction("Action", new { param1 = …

c# asp.net-mvc asp.net-mvc-2

3
推荐指数
1
解决办法
6786
查看次数

标签 统计

asp.net-mvc ×1

asp.net-mvc-2 ×1

c# ×1