根据内容页面中的操作修改母版页中的元素

时间:2011-11-30 20:01:14

标签: asp.net-mvc-3

我在母版页中有一个Link元素。该元素最初是不可见的。 在其中一个内容页面中执行某个操作后,我需要使该Link元素可见。 我正在研究如何做到这一点。我可以从我的Controller方法中执行此操作,还是必须通过ajax执行此操作?

3 个答案:

答案 0 :(得分:1)

要在mvc中操作UI,您需要使用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';
    }

}

答案 1 :(得分:0)

Find control on master pages

发现这个,可能有所帮助。 从您的代码背后,您可以找到控件,投射它并操纵它。

Panel pnlWelcome2 = this.Master.FindControl("pnlWelcome") as Panel;

答案 2 :(得分:0)

一种选择是使用TempData或ViewData。

您的控制器中的“特定操作”可能就像

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

然后,您的母版页可以有以下

@if (TempData["ShowLink"] != null && (bool)TempData["ShowLink"]) 
{
   <a href="#">My link</a>
}