【问题标题】:How to pass viewBag data into Javascript and display in div如何将 viewBag 数据传递到 Javascript 并在 div 中显示
【发布时间】:2016-05-24 20:17:03
【问题描述】:

我总是对在这里提出愚蠢的问题持怀疑态度,但我需要继续前进并创建更多活动页面,但这在我的方式中是一个挥之不去的问题......剃须刀中的 chtml 包含一个开关 ,,, 在其中一个在这种情况下,有三个 if 语句.. 这只是其中一个,具体取决于 if 语句,viewdata 中的不同字符串将被输入到 div 中,并且 div 类“隐藏”被删除并提供显示的文字...... 在过去的几个小时里,我恢复了我暂时失去的删除隐藏类的能力(我讨厌 css),但我从来没有能够更新 div 的内容。 请指教谢谢!!

<div id="divUnUsableEvent" class="hidden">
    <div class="row clearfix">
        <div class="col-md-1"></div>
            <div id="systemExceptionLbl" style="font-size: 2em; color: red;" 
                class="text-danger:focus">
               Please contact IS support
            </div>
       </div>
   </div>

    //alphascores Not present  AND   BetaSCores  Not Present Ready for xxxxx     //alphascores Not present  AND   BetaSCores  Not Present Ready for xxxxx Scoring
if (!Convert.ToBoolean(@ViewData["alphaPresent"]) 
   && !Convert.ToBoolean(@ViewData["betaPresent"]))
{
    <script type="text/javascript">
        $(function() {
            $('#UnUseableEvent').addClass("hidden");
            var txtMsg = @Html.Raw(Json.Encode(ViewData["beforeAlpha"]));
            $('#divUnUsableEvent').removeClass("hidden");
            $('#systemExceptionLbl').removeClass("hidden");
            $('#systemExceptionLbl').innerText  = txtMsg;
        });
    </script>

    <a id="XXXReScoreEvent" 
        href="@Url.Action("Readyforxxxxxx", "Exception", new { Id = (int)@ViewData["Id"] })"
        class="btn btn-primary btn-default btn-too-large pull-left margin" 
        aria-label="XXXReScoreEvent">
        <span class="glyphicon glyphicon-edit" aria-hidden="true"></span>  Ready for xxxxxx Scoring
    </a>
}
break;

我知道它击中了 javascript,因为在这种情况下,名为“#UnUseableEvent”的 html 元素(一个按钮)被正确隐藏了。我当然希望这个 html 页面中的 javascript 和剃须刀中的函数调用但是婴儿步骤

特别是关于 ('#systemExceptionLbl').innerText = txtMsg;我试过了

.text
.value
.innerHTML

一切都无济于事。我可以看到格式正确的 Json.Encoded 文本到达变量 txtMsg,但我再次无法将它放入 div ..

我现在成功地显示了 div(删除隐藏的类)我试图影响错误的 div 名称,并且不需要从元素 $('#systemExceptionLbl') 中删除隐藏类的行。

我什至尝试跳过 JQuery 参考并使用老式 document.getElementById('systemExceptionLbl').innerHTML = txtMsg;

【问题讨论】:

    标签: javascript jquery model-view-controller razor viewdata


    【解决方案1】:

    曾经尝试过:

    $('#systemExceptionLbl').text( txtMsg ); 
    

    $('#systemExceptionLbl').html( txtMsg );
    

    innerText 不是 jquery 函数。而是使用.html().text() 向其中插入数据

    【讨论】:

    • 是的,这就是诀窍 :: $('#systemExceptionLbl').html(txtMsg);
    • 感谢后面的推理,这是因为它的 JQuery 试图填充 DOM 元素并在 JQuery 中添加文本,而 javascript 使用显示的语法 $('#systemExceptionLbl').html( txtMsg );或 $('#systemExceptionLbl').text( txtMsg );嘿,当您一生中的大部分时间都在做桌面应用程序和 Windows 服务时,这些网络小东西似乎是为了让您绊倒...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多