Javascript 在ASP.NET MVC中使用标志变量显示/隐藏元素

Javascript 在ASP.NET MVC中使用标志变量显示/隐藏元素,javascript,c#,jquery,asp.net,asp.net-mvc,Javascript,C#,Jquery,Asp.net,Asp.net Mvc,我有一个如图所示的表单,它有一个下拉列表、两个div和两个按钮,根据每次页面加载(初始加载和数据检索后等)的某些情况显示/隐藏。另一方面,我在控制器中使用一个名为hasValue的变量,并根据每种情况在控制器中设置该变量,并在razor视图中获得Ajax成功。然后在页面加载时,我将组件设置为可见隐藏,如下所示: 控制器: 查看: var hasValue=false; $(函数(){ //我在razor页面上设置通过Ajax从Controller检索到的hasValue属性,并在视图中随时使

我有一个如图所示的表单,它有一个下拉列表、两个div和两个按钮,根据每次页面加载(初始加载和数据检索后等)的某些情况显示/隐藏。另一方面,我在控制器中使用一个名为
hasValue
的变量,并根据每种情况在控制器中设置该变量,并在razor视图中获得Ajax成功。然后在页面加载时,我将组件设置为可见隐藏,如下所示:

控制器:

查看:


var hasValue=false;
$(函数(){
//我在razor页面上设置通过Ajax从Controller检索到的hasValue属性,并在视图中随时使用
切换字段(hasValue);
});
函数切换字段(参数){
$('#div1').css('display',!param?'block':'none');
$('#div2').css('display',param?'block':'none');
$('#btn1').css('display',param?'block':'none');
$('#btn2').css('display',!param?'block':'none');
}
我的问题是。在某些情况下,单变量
hasValue
是不够的。在这种情况下,除了上述每个字段中的
hasValue
变量之外,我是否应该使用额外的参数

我不确定是否有更好的方法或优雅的解决方案来解决这种情况

任何帮助都将不胜感激

我想杰克的意思是

function toggleField(param) {
        $('#div1').toggle(param);

        $('#div2').css('display', param ? 'block' : 'none');
        $('#btn1').css('display', param ? 'block' : 'none');
        $('#btn2').css('display', !param  ? 'block' : 'none');
    }
图像名称与代码不匹配对它没有帮助


如果您需要VAR,请使用两个。这没什么错。让它工作起来,然后改进

强烈建议执行
$(“#btn save”)。在(“单击”,函数(e){e.preventDefault();toggleField(false)}
@mplungjan抱歉,我添加了变量和必要的解释。谢谢。@mplungjan hasvalue也请执行
$('#div1')。切换(param)
$('#div2')。切换(!param)
而不是像那样更改CSS,但我应该在何时何地调用
$('#div1')。切换(param)
<a id="btn-save" href="javascript:toggleField(false);"> Save </a>


<script>
    var hasValue = false;

    $(function () {
        //I set hasValue property retrieved from Controller via Ajax on the razor page load and use whenever I need in the View
        toggleField(hasValue);
    });

    function toggleField(param) {
        $('#div1').css('display', !param ? 'block' : 'none');
        $('#div2').css('display', param ? 'block' : 'none');
        $('#btn1').css('display', param ? 'block' : 'none');
        $('#btn2').css('display', !param  ? 'block' : 'none');
    }

</script>
function toggleField(param) {
        $('#div1').toggle(param);

        $('#div2').css('display', param ? 'block' : 'none');
        $('#btn1').css('display', param ? 'block' : 'none');
        $('#btn2').css('display', !param  ? 'block' : 'none');
    }