Я хочу сделать твиттер похожим на сайт микроблога, чтобы другие пользователи могли следить за моими сообщениями.
Для этого я создал страницу со всеми зарегистрированными пользователями.Перед каждым именем есть кнопка, чтобы следовать / отписаться от пользователя.(Как в Твиттере)
![Follow User Page](https://i.stack.imgur.com/uXXvN.png)
Просмотр -
@{
ViewBag.Title = "Users";
}
@model MembershipUserCollection
@foreach (MembershipUser item in Model)
{
if(User.Identity.Name != item.UserName)
{
<li>@item.UserName
<span id="sp-@item.UserName"><input id="@item.UserName" name="submit" type="submit" value="Follow" class="follow-user fg-button ui-state-default"/></span>
</li>
}
}
<script type="text/javascript">
$(".follow-user").live("click", function (e) {
e.preventDefault();
var data = $(this).attr("id");
var spid = '#sp-' + data;
var btnid = '#' + data;
var val = $(this).attr('value');
$.ajax({
type: "POST",
url: "User/FollowUser",
data: { id: data },
cache: false,
dataType: "json",
success: function () {
if (val == 'Follow') {
$(btnid).attr('value', 'Unfollow');
}
else {
$(btnid).attr('value', 'Follow');
}
}
});
});
</script>
Контроллер -
public ActionResult Index()
{
return View(Membership.GetAllUsers());
}
public void FollowUser(string id)
{
ViewData["test"] = "test";
var n = FollowingUser.CreateFollowingUser(0);
n.FollowingId = id;
n.FollowerId = User.Identity.Name;
string message = string.Empty;
var list = new List<FollowingUser>();
list = (from a in db.FollowingUsers where a.FollowerId == User.Identity.Name && a.FollowingId == id select a).ToList();
if (list.Count() == 0)
{
try
{
db.AddToFollowingUsers(n);
db.SaveChanges();
}
catch (Exception ex)
{
message = ex.Message;
}
}
else
{
db.DeleteObject((from a in db.FollowingUsers where a.FollowerId == User.Identity.Name select a).FirstOrDefault());
db.SaveChanges();
}
}
Таблица следующих пользователей -
![FollowingUsers Table](https://i.stack.imgur.com/jhvy5.png)
Теперь я хочу изменить статус кнопки при проверке загрузки страницы, независимо от того, за ним уже следили.
Ex- Если пользователь уже подписался, он должен отображаться, как показано ниже.