изменение элемента на главной странице в зависимости от действия на странице содержимого - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть элемент ссылки на главной странице.Этот элемент изначально невидим.После определенного действия на одной из страниц содержимого мне нужно сделать этот элемент Link видимым.Я ищу способы, как это можно сделать.Могу ли я сделать это из моего метода Controller или мне придется делать это через ajax?

Ответы [ 3 ]

1 голос
/ 01 декабря 2011

Чтобы манипулировать пользовательским интерфейсом в mvc, вам нужно использовать javascript. Если ваше «определенное действие» связано с сервером, я думаю, вам нужно использовать ajax :

$.ajax({
    url: "yourController/yourAction",
    dataType: 'json',
    success: function(json){
        var domEl = document.getElementById('theIdOfyourLink');

        if(json.show){
            domEl.style.display = 'block';
        }else{
            domEl.style.display = 'none';
        }
    }
});

Если ваши действия связаны только с клиентом, вы можете использовать только javascript. В конце вы можете играть с CSS, чтобы сделать видимой или нет вашу ссылку:

var yourfun = function(show){
    var domEl = document.getElementById('theIdOfyourLink');

    if(show){
        domEl.style.display = 'block';
    }else{
        domEl.style.display = 'none';
    }

}
0 голосов
/ 01 декабря 2011

Один из вариантов - использовать TempData или ViewData.

Ваше «определенное действие» в контроллере может быть похоже на

public ActionResult MyCertainAction()
{
   TempData["ShowLink"] = true;
}

Тогда ваша мастер-страница может иметь следующее

@if (TempData["ShowLink"] != null && (bool)TempData["ShowLink"]) 
{
   <a href="#">My link</a>
}
0 голосов
/ 01 декабря 2011

Найти элемент управления на главных страницах

Найдено, может помочь.Из вашего кода вы можете просто найти элемент управления, привести его в действие и манипулировать им.

Panel pnlWelcome2 = this.Master.FindControl("pnlWelcome") as Panel;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...