以下是這種情況:當新用戶註冊到我們的網站時,我們想發送一封電子郵件來驗證用戶是否擁有該電子郵件地址。在電子郵件中有一個頁面的鏈接,將做驗證,像這樣: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