首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC: post-redirect-get模式,具有两个重载的操作方法

ASP.NET MVC: post-redirect-get模式,具有两个重载的操作方法
EN

Stack Overflow用户
提问于 2012-09-09 19:33:48
回答 3查看 3.9K关注 0票数 4

是否可以在asp.net-mvc中使用两个重载的操作方法(一个用于GET操作,另一个用于POST操作)实现post-redirect-get模式。

在所有的MVC post-redirect-get模式示例中,我看到了用于post-redirect-get过程的三种不同的操作方法(对应于Initial Get、Post和redirect Get),每个方法都有不同的名称。在asp.net-mvc中,这真的需要至少有三个不同名称的动作方法吗

例如:(下面显示的代码是否遵循Post-Redirect-Get模式?)

代码语言:javascript
复制
public class SomeController : Controller
{
    // GET: /SomeIndex/
    [HttpGet]
    public ActionResult Index(int id)
    {
        SomeIndexViewModel vm = new SomeIndexViewModel(id) { myid = id };
        //Do some processing here
        return View(vm);
    }

    // POST: /SomeIndex/
    [HttpPost]
    public ActionResult Index(SomeIndexViewModel vm)
    {
        bool validationsuccess = false;
        //validate
        if (validationsuccess)
            return RedirectToAction("Index", new {id=1234 });
        else
            return View(vm);
        }
    }
}

感谢您的回复。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-11 18:43:10

从单元测试的角度考虑。

如果所有内容都在一个操作中,那么代码将很难测试和阅读。我看不出你的代码有什么问题。

票数 1
EN

Stack Overflow用户

发布于 2012-09-10 00:53:38

我觉得你的代码没问题。遵循这种模式,这就是我们在所有项目中如何做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2012-09-10 01:05:35

如果动作的名称相同,那么应该区分哪个动作是GET,哪个动作是POST。此外,您的方法签名必须不同,以避免编译错误。

这两个“需求”在您的代码中都是可以的,所以在PRG中使用这些操作是没有问题的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12338704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档