除了将用户的浏览器定向到目标网址之外,如何使页面上的所有链接触发操作?

时间:2012-08-30 11:46:21

标签: asp.net-mvc asp.net-mvc-3 razor

我有一个应用程序,可以在应用程序中发生各种事情时创建用户notifications

每个notification都包含link,该notification是在创建notification时生成的,link将用户引导到notification打算引起注意的应用程序部分。< / p>

unread = true可以是网站上的任何位置。

创建后,link被标记为notification,当用户点击unread = false我想将用户带到正确的位置时,还会触发操作这会将unread = false设置为{{1}}。

我怎样才能做到这一点?有没有办法可以过滤页面上的所有链接,首先将其重定向到将通知设置为{{1}}然后将其带到网址的操作?我不确定从哪里开始。

2 个答案:

答案 0 :(得分:2)

点击链接

进行Ajax调用
$("a").click(function(){
  $.ajax({
     url: "url_to_make_notification_read",
     data: notification_id;
  });
});

编辑:另一种解决方案(可能更好)

或许您根本不需要额外的Ajax调用。如果我理解你的问题,我相信你会采取以下行动:

public ActionResult VisitNotification(int notificationId){
     // Do things
     return View("whatever");
}

只需将其更改为

即可
public ActionResult VisitNotification(int notificationId){
     // Do things
     var notification = Repository.GetNotification(notificationId);
     notification.unread = false;
     Repository.Save();
     return View("whatever");
}

答案 1 :(得分:0)

或者你是老式的,并使用@ Html.ActionLink生成一个指向您选择的控制器动作的链接,并在该方法中设置您的值并返回用户最终应该查看的视图。