【问题标题】:Remove item from session in Razor view when leaving the page离开页面时从 Razor 视图中的会话中删除项目
【发布时间】:2016-12-22 20:28:29
【问题描述】:

导航到任何页面时,我需要从System.Web.HttpSessionStateBase.Session 中清除一个项目。
这是必需的,因为我们有在单击navigate-to-page 菜单项时应清除的字段。
每个项目都有调用操作方法的href 属性。

当我使用下面的示例时,它会显示错误-Cannot implicitly convert type void to object

$('.navigate-to-page').on('click', function () {

   // @Session.Remove("ItemToRemoveKey");

});

编辑 1

@Hassen Ch 提到你不能在 javascript 中使用剃须刀代码,好吧,你真的可以!

我目前拥有的代码:

$('.navigate-to-page').on('click', function () {
    @{
         this.Session.Remove("ItemToRemoveKey");                 
    }
});

现在遇到的问题:

1.当我导航到其他页面时,没有触发click事件,虽然当我返回上一页时,它首先触发action方法和click事件。
2. 先调用action方法,导致视图模型不是最新的。

【问题讨论】:

  • 您不能在 JQuery 中使用 Razor 语法。因为显然 Razor 在服务器端生成代码,而 Jquery 在客户端

标签: javascript c# asp.net-mvc session razor


【解决方案1】:

你不能在客户端做。

您可能想要定义一个动作并在点击时通过 ajax 调用它

【讨论】:

  • 是的,它有效!我需要在我的操作方法中添加 [HttpGet] 属性并返回 null 以使其工作。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 2011-04-02
  • 2020-06-22
  • 2016-11-28
  • 2010-09-20
  • 1970-01-01
相关资源
最近更新 更多