无法让Sessions在webmatrix中运行

时间:2013-07-24 16:01:00

标签: asp.net razor webmatrix

我正在尝试使用Sessions将变量从一个页面传递到另一个页面,但它们似乎没有效果。在剃刀语法

中的源页面中
    Session["variable"] = "value";

在目标页面中:

    <p>@Session["variable"].ToString()</p>

但是我收到服务器错误

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

任何建议都会受到欢迎........谢谢

1 个答案:

答案 0 :(得分:1)

我只能用铸造来实现这个目的:

<p>@(string)Session["variable"]</p>

虽然我用ToString()尝试了很长时间,但我明确记得我尝试使用cast选项调用Session变量只是成功,尽管我听说过{{1} } 应该管用。无论哪种方式,我总是让它与铸造一起工作。

有人说过,我觉得我只是警告你,如果你只是想在页面之间传递数据,你就不应该使用Session变量了。在您这样做之前,请使用隐藏的表单字段,查询字符串,URL数据,甚至cookie和/或数据库。

我喜欢将Session变量看作快速解决非常特殊情况的东西,并且只是非常小心地使用。总是希望该值为null并在使用之前测试其值。

有关使用WebMatrix在网页之间传输数据的选项的帮助,请查看Mike Brind非常有用的网站:http://www.mikesdotnetting.com/Article/192/Transferring-Data-Between-ASP.NET-Web-Pages ToString()

如果您仍然想使用Session变量并且转换不起作用,那么我认为唯一会导致错误的是您在<-- You'll want to bookmark this for now. It is right up the alley of what you are getting yourself into with WebMatrix.中所期望的值不是您认为的那样是

对于记录:

我只是想说,“甚至在你做之前甚至是cookie和/或数据库”请不要使用这些选项,因为它们在你的情况下可能很糟糕(同样,cookie会实际上只是给你与Session变量相同的问题。在任何情况下,它实际上都取决于您如何使用数据,以及是否始终检查以确保在会话变量和/或cookie的情况下未清除该值。