以下是这种情况:当新用户注册到我们的网站时,我们想发送一封电子邮件来验证用户是否拥有该电子邮件地址。在电子邮件中有一个页面的链接,将做验证,像这样:ASP.NET MVC:以相同的方法使用GET和POST
http://www.mysite.com/account/verify/token
的验证方法是这样的:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Verify(Nullable<Guid> id)
{
// tries to get the user based on the verification code
if (ValidId(id))
{
// if the id is correct, update user data in the model and redirect
return RedirectToAction("Index", "Dashboard");
}
else
{
// redirects the user to the verify view
return View("Verify");
}
}
“验证”视图是一个简单的带有按钮的文本框,因此用户可以手动输入验证码(用户可以从该站点访问此页面,并且可能更喜欢只复制粘贴代码)。当用户点击按钮时,我想要做与我的GET方法一样的事情;所以我结束了这样的事情:
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Verify(Nullable<Guid> id) { ... }
我有几个问题与此代码(其中工程,但...):
- 是否确定有GET和POST方法?或者有更好的方法来处理这种情况?
- 我正在修改GET方法中的数据(如果ID是正确的,我更新用户数据以反映它已经过验证)并且这是一个很大的否NO ...我仍然希望用户能够点击链接并验证令牌。有没有更好的方法来实现这一目标?
感谢
__Verrify__视图可以使用JS从窗体中获取请求,因此您不会有单独的操作。没有? – Amirshk 2009-11-18 02:20:48