1

我有两个视图和两个控制器。一个给客户,另一个给他们的地址。客户可以有一个地址。在我的客户端模型定义中,我允许客户端的 addressID 可以为空。当我想为客户创建地址时,根据 addressId 是否为空,我将重定向到地址的“创建”或“详细信息”视图。现在我只想在到达 Create 视图时显示客户名称(“为 John Doe 创建地址”)。我该怎么做呢?我正在尝试慢慢学习 MVC,但在处理关注点分离和将数据传递到哪里时遇到了麻烦。

4

3 回答 3

1

由于您是手动重定向,因此您肯定知道下一个请求。在这种情况下,TempData 可能最适合您的需求。如果您需要的数据多于下一个请求,您可能应该使用已经建议的 Session 或 Cookies。

使用它来存储下一个请求的数据:

TempData["ClientName"] = "John Doe";

这是为了在下一个请求中获取数据:

var clientName = TempData["ClientName"];

请注意,TempData 仅为下一个请求存储其数据。有关 TempData MSDN 的更多信息是您的朋友:http: //msdn.microsoft.com/en-us/library/dd394711%28v=vs.100%29.aspx

于 2013-02-28T08:47:11.807 回答
0

尝试为其他人提供一些代码以更好地帮助您,但现在我可以告诉您的是您希望跨请求保持状态,因此您有很多选择。您可以保持会话状态,可以将查询字符串附加到以下请求中,可以使用 cookie 传输 id 等。

于 2013-02-28T08:35:34.567 回答
0

我建议您为此使用会话..存储用户名session("username")并在视图或您想要的任何控制器中使用它..

于 2013-02-28T10:19:28.623 回答