是否可以在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模式?)
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);
}
}
}感谢您的回复。
发布于 2012-09-11 18:43:10
从单元测试的角度考虑。
如果所有内容都在一个操作中,那么代码将很难测试和阅读。我看不出你的代码有什么问题。
发布于 2012-09-10 00:53:38
我觉得你的代码没问题。遵循这种模式,这就是我们在所有项目中如何做到这一点。
发布于 2012-09-10 01:05:35
如果动作的名称相同,那么应该区分哪个动作是GET,哪个动作是POST。此外,您的方法签名必须不同,以避免编译错误。
这两个“需求”在您的代码中都是可以的,所以在PRG中使用这些操作是没有问题的。
https://stackoverflow.com/questions/12338704
复制相似问题