我有一个ActionResult函数,其中有一行重定向到同一个控制器上的另一个动作:
TempData("ct") = Request.Url.Segments(1)
Return RedirectToAction("Index", New With {.ct = " "})
以下是问题/问题:我期望在 Index 操作中到达该值的生命周期一直持续到呈现页面,以及来自用户的下一个请求值将不存在。显然,我对某事错了,因为 Request(" ct")的价值在我的开发服务器上继续通过几十次点击和页面持续存在(本地主机:端口)。有些东西告诉我,我在这里感到愚蠢,但是"什么"我错过了吗?只要不在Url查询字符串中,该值就不应该在下一个请求中消失吗?另外,由于它们是只读的,我怎么能/可以改变这个值呢?
(localhost开发IIS Express上的VB.NET VS2015 MVC5)
编辑 - 解决方法(对我而言)
这里是从URL接收值并将操作重定向到"索引"的ActionResult。动作:
Request("ct").Trim.HasValue
分配一个空格(因为如果你分配" null"或者"没什么"它没有改变任何东西)允许我去#34; .Trim.HasValue&# 34;并测试下一个控制器中的值(" .HasValue"是我创建的扩展,如果值为&#34,则返回布尔值;为空" [有很多其他方法可以执行此操作])。
GL_ELEMENT_ARRAY_BUFFER
TempData(" ct")当然会随着当前请求的结束而消亡。 (耶!)
有点" hacky"而不是过于优雅,但功能。如果那里有一个更好,更优雅的方式,我会全力以赴。