2012-07-24 39 views
0

我在这里用户可以通过点击电子邮件链接发送的电子邮件中的详细信息和编辑页面。MVC C#最好的方法 - 会话变量

当他们点击详细信息或编辑页面的超链接,我去开辟了用户可以编辑邮件的控制器。

在提交邮件的,我去[httppost。

在httppost ActionResult的,我需要使用返回RedirectToAction,以便将用户重定向回无论是从那里开始从编辑或详细信息页面。

我想保持在会话变量此信息给用户来源于其中:

Session["Originated"] = "Edit"; 

Session["Originated"] = "Details"; 

还是有更好的方式来跟踪这一点。

回答

2

也许添加路由参数?例如/ Email/Create?originated = Edit。它会保持你所有的东西没有任何问题。

例子: 在查看

@Html.ActionLink("Create email", "Create", "Email", new { originated = "Edit" }, null) 

在行动

public ActionResult Create(string originated) 
{ 
... 
} 
+0

我会同意,并指出在大多数情况下,你应该避免会话,除非你有全球范围内使用的值。 – 2012-07-24 19:15:40

+0

如何添加路由参数 – 2012-07-24 19:17:52

+1

我假设您的控制器被称为电子邮件,并且您的操作被称为创建。如果是这样的话,你可以这样做:在您的电子邮件控制器中公开ActionResult Create(string originated){}。 – Sean 2012-07-24 19:21:36