【问题标题】:Toggle div depending on controller variable value根据控制器变量值切换 div
【发布时间】:2014-06-25 23:58:28
【问题描述】:

已编辑

我有一个“保存更改”按钮,我想单击它并切换一个带有“已保存更改”消息的 div。我是这样做的:

HTML

<input type="submit" id="savebtn" name="save" value="Save Changes"/>
<input type="hidden" id="res" name="res" value="@ViewBag.result"/>
<div class="success">Changes saved</div> 

JQuery

$('#saveButton').click(function () {

var aux = res.value.toString();

if ($('#res').val() == "OK")
    $(".success").show();

    alert(aux);

});

但是,我需要按钮来实际保存更改,如果操作成功,则显示消息 div。因此,在我的cshtml 文件中,我有一个包含操作成功或失败的结果变量。

CSHTML

ViewBag.result = result;

现在,我需要根据结果变量显示该消息 div:我需要以某种方式使其成为JQuery 函数的参数。我通过ViewBag 传递它。

注意:页面加载时,viewbag 是空的。它仅在单击按钮后才获得其值。之后,viewbag 被填充,我希望它用于 jQuery 函数,但我没有得到任何运气。

【问题讨论】:

  • 你能把这个变量保存到html代码中的隐藏输入吗?
  • 您的意思是,例如将其在 ViewBag 中传递到隐藏的 div 中?

标签: javascript jquery html asp.net-mvc


【解决方案1】:

传递结果为viewbag

在 jquery 和 show/hide 相应地访问您的 div 中的 viewbag 值

【讨论】:

  • 不行,I'm getting Conditional compilation is turned off as a warning
【解决方案2】:

假设您可以将结果存储在输入隐藏字段中,使用下面的查询来访问结果,最初成功的 div 是隐藏的:

<input type="hidden" id="result" value"success"/>

jQuery :

$(function(){
    if($('#result').val()=="success")
       $(".success").show();
});

【讨论】:

  • 我不能做类似$('#savebtn').click(function () { if ($(@ViewBag.result == "OK") { alert('test'); } });的事情
  • 实际上你需要使用 ViewData 看到这个stackoverflow.com/questions/6521286/…
【解决方案3】:

你可以在一个简单的 if 条件下检查它

if($('#result').val()=="success")
   $(".success").toggle();

或者你可以使用Ajax方法

     function Save() {

            $.ajax({
                url: "Your Url",   // Current Page, Method  
                data: Your data // better if you parameter map as JSON  
                type: "POST",   
                contentType: "application/json", // posting JSON content      
                dataType: "JSON",  // type of data is JSON (must be upper case!)  
                timeout: 100000,    // AJAX timeout  

                success: function (result) {

                   $(".success").toggle();

                },
                error: function (xhr, status) {

                       alert("An error occurred while processing");
                }
            });

        }

现在在你的按钮点击中调用这个 save()

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多