如何将viewBag数据传递给Javascript并在div中显示

时间:2016-02-13 18:25:04

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

我总是对在这里提出愚蠢的问题持怀疑态度,但我需要继续前进并创建一些更活跃的页面,但这在我的方式中是一个挥之不去的问题...剃刀中的chtml包含一个开关,,,其中一个有三个if语句的情况.. 这只是其中一个取决于if语句,viewdata中的不同字符串将被输入div并删除div类“hidden”并提供文字显示.... 我在过去的几个小时里恢复了我的短暂失去的能力去除隐藏的类(我讨厌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;

1 个答案:

答案 0 :(得分:1)

曾经尝试过:

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

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

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