调用另一个方法以返回视图的 Post 方法

本文关键字:方法 Post 视图 另一个 调用 返回 | 更新日期: 2023-09-27 18:35:43

在 MVC4 项目中,我需要根据可能存在的一些消息"刷新"页面,否则我只是重定向到一个页面,如果再次显示页面,如果他们的消息存在,我想避免只返回视图,因为它会导致当用户尝试刷新它时双重提交。

我想做的是这个

[HttpGet]
public ActionResult SampleMethod()
{
    viewModel = _builder.Build();
    return View(viewModel);
}
[HttpPost]
public void SampleMethod(SampleViewModel viewModel)
{
    if (ModelState.IsValid)
    {
        var response = serviceCall;
        var errorMessages = response.ErrorMessages;
        if (!errorMessages.Any())
        {
            //Redirect to proper view
        }
        else
            vm = _builder.Build();
    }
    else vm = _builder.Build(); //There is some validation error I rebuild
    CashbackOffersConfirmation(vm);
}
public ActionResult SampleMethodConfirmation(SampleViewModel viewModel)
{
    return View("SampleMethod", viewModel);
}

它经历了这个过程 但最后一页是.../SampleMethod而不是.../SampleMethodConfirmation,并且是空白的,

这与路由有关吗(在这方面很迷茫)?这是一种正确的方法吗?

谢谢

调用另一个方法以返回视图的 Post 方法

为了将对象模型从视图传递到控制器,您需要发出 post 请求。确保使用将生成发布请求的表单。同时将 SampleMethodConfirmation 方法设为帖子。

例如:在控制器中的方法顶部添加 [HttpPost]