ASP MVC 4数据传递

时间:2013-10-11 14:38:01

标签: asp.net-mvc asp.net-mvc-4

我是一名新的ASP MVC学习者,我正在研究小件并陷入困境。方案是用户正在创建新帐户,其中accountID由SQL自动创建。我想将此ID传递给下一步,让用户输入名称和地址。如何为此方案传递此ID或任何解决方案?考虑通过TempData或Session传递数据,但我不确定。

4 个答案:

答案 0 :(得分:0)

TempData会将数据保存到您后续请求的结尾。

还有ViewBag / ViewData,它们实际上是相同的字典,持续时间较短,只能持续到当前请求结束。

Session只要用户的会话打开就会持续。

如果“下一步”意味着将数据传递到后续视图,我认为TempData适合您的帐单,但如果您需要更耐用的数据,Session是可行的方法。

答案 1 :(得分:0)

只需使用您用于登录表单的相同流程即可。如果用户已经输入数据库,您可以将它们视为尚未完全填充的配置文件的登录用户。

在ASP.NET MVC中,在很多情况下,可以通过将Forms Authentication cookie设置为新注册的用户名来解决这个问题

FormsAuthentication.SetAuthCookie(newUser.Logon, false);

我认为在TempDataSession中存储用户ID是错误的。出于所有正常目的,在将记录插入用户数据库后,刚刚注册到您网站的用户可被视为已登录。

答案 2 :(得分:0)

我认为你正在接近这个错误。您应该让用户先填写所有信息,然后进行所有注册,包括创建用户并在最后存储各步骤中的数据。

如果按照建议的方式进行操作,最终会有部分注册用户。他们将创建一个帐户,然后关闭他们的浏览器,永远不会完成其余的。您现在必须编写额外的代码以在每次登录时检查所有这些。

最好让您的注册过程一次完成所有这些过程。

答案 3 :(得分:0)

你可以尝试这种方式 - 创建用户(用户名和密码将是表单中的值):

 WebSecurity.CreateUserAndAccount(username, password);

然后这样做:

 int userID = 0;
 userID = WebSecurity.GetUserId(username); 

希望有所帮助。