我是一個新的ASP MVC學習者,我在一個小塊上工作並陷入困境。該場景是用戶正在創建新帳戶,其中accountID由SQL自動創建。我想通過這個ID到下一步,讓用戶輸入名字和地址。我將如何通過此ID或此場景的任何解決方案?想想通過TempData或Session傳遞數據,但我不確定。ASP MVC 4數據傳遞
回答
TempData
將數據保存到您的後續請求的結束。
還有ViewBag
/ViewData
,它們確實是相同的字典,持續時間較短,它們只持續到當前請求結束。
Session
持續,只要用戶的會話打開。
我認爲TempData
符合您的賬單,如果「下一步」意味着將數據傳遞到後續視圖,但如果您需要數據更持久,Session
是要走的路。
只需使用你會使用你的登錄表單相同的過程。如果用戶已經進入數據庫,那麼您不妨將它們視爲尚未擁有完全填充配置文件的登錄用戶。
在ASP.NET MVC,這將 - 在很多情況下 - 由窗體身份驗證Cookie設置爲新註冊的用戶名解決
FormsAuthentication.SetAuthCookie(newUser.Logon, false);
我認爲存儲的用戶ID TempData
或Session
這是錯誤的範圍。對於所有正常的目的,在用戶數據庫中插入記錄後,剛剛註冊到您網站的用戶可被視爲登錄。
我認爲你正在接近這個錯誤。您應該先讓用戶填寫所有信息,然後再進行所有註冊,包括創建用戶並最終存儲各個步驟中的數據。
如果你做的事情你建議的方式,你最終會與部分註冊用戶。他們將創建一個帳戶,然後可能關閉瀏覽器並從未完成剩下的任務。現在,您將不得不編寫額外的代碼來檢查這一切,他們每次登錄的時候。
最好是隻需註冊程序做這一切在一次作爲一個全有或全無的過程。
我認爲你是對的,但是我的帳戶登錄名和帳號的生物都在數據庫中不同的表。您的意思是,首先我必須將兩個模型合併到一個視圖中,然後編寫一個存儲所有信息的臨時代碼。用戶完成表單後,查詢將用於寫入數據庫? –
@ new-learner - 無論你有多少桌子都沒關係。如果需要,您可以更新1000個表格。您不必將數據從一頁保存到數據庫中的下一頁。您可以有多種選擇,例如將數據發佈到下一頁,使用Ajax執行該過程並將所有數據保存在父頁面中等等。許多選項.. –
你可以試試這個辦法 - 創建用戶(用戶名和密碼會從你的表單中的值):
WebSecurity.CreateUserAndAccount(username, password);
然後做到這一點:
int userID = 0;
userID = WebSecurity.GetUserId(username);
希望有所幫助。
- 1. MVC 4主頁_layout傳遞數據
- 2. MVC 4:傳遞用戶組數據
- 3. Asp.net MVC 4 - 通過類傳遞數據
- 4. ASP MVC - 傳遞模型數據或從數據庫檢索
- 5. ASP MVC 4,在自定義編輯器模板中傳遞數據
- 6. 上傳圖片到一個數據庫在ASP MVC 4
- 7. ASP MVC 4 EntityValidationErrors
- 8. 傳遞參數從@ Html.ActionLink MVC 4
- 9. MVC 4 Dropdownlist form.submit傳遞參數值
- 10. 在參數MVC中傳遞URL 4
- 11. PHP - >將數據傳遞給ASP的mvc並返回JSON?
- 12. ASP .NET MVC如何在視圖之間傳遞數據
- 13. asp .net mvc 4 dropdownlist
- 14. ASP MVC 4和IIS
- 15. ASP.NET MVC數據傳遞
- 16. AS3將數據傳遞給ASP
- 17. 將數據從Classic ASP傳遞到AngularJS
- 18. 視圖模型傳遞NULL在ASP MVC
- 19. 傳遞變量來查看ASP MVC
- 20. 傳遞用戶相關的數據,以期在ASP.NET MVC 4
- 21. MVC 4將數據傳遞到Bootstrap模式窗體
- 22. MVC 4 - 如何將模型數據傳遞給部分視圖?
- 23. MVC 4將數據傳遞給部分視圖 - 格式
- 24. MVC 4 - 通過ViewBag傳遞數據到_Layout局部視圖
- 25. MVC 4 - 從視圖傳遞數據=>控制器
- 26. 傳遞參數4
- 27. 傳數據通過的integers- MVC 4
- 28. 多參數asp網絡mvc 4
- 29. ASP MVC 4編譯錯誤
- 30. MVC 4 ASP .NET Oracle 10g EntityFramework
我認爲帳戶名稱也是唯一的,所以插入後,我會選擇通過帳戶名來獲得ID。 – jannagy02
當你需要的數據在不同的要求使用'Session'被持久化,如果它是唯一連續之間的一個請求使用TempData的 –