繁体   English   中英

如何通过与 jQuery 集成来检查 TempData 是否为空?

[英]How can I check if TempData is null through integration with jQuery?

如果TempData不为空,我想显示一个toastr (又名弹出窗口)。 但是,我无法将 jQuery 和 Razor 语法集成在一起。 这是我目前的 javascript:

$(document).ready(function() {
        if (@TempData["SuccessMessage"] != null) {
            toastr.options = {
                "closeButton": true,
                "positionClass": "toast-bottom-right"
            }
            toastr.success("This is a test!");
        }
});

但是,toastr 没有显示。 我已经在进一步检查 TempData 以向用户显示文本。

@if (TempData["SuccessMessage"] != null)
{
    <div class="success-message">
        @Html.Raw(@TempData["SuccessMessage"].ToString())
    </div>
}

我想知道是否有一种替代方法是以某种方式使用上述标记并检查此 div 是否存在,如果存在,则显示 toastr? 或者我可以将两张支票合二为一? 建议?

我能够使用以下代码使其工作:

$(document).ready(function() {
    var success = @((TempData["SuccessMessage"] != null).ToString().ToLower());

    if (success == true) {
        toastr.options = {
            "closeButton": true,
            "positionClass": "toast-bottom-right"
        }
        toastr.success("Success!  You're now registered for Lose A Ton!");
    }
});

对于任何好奇的人,我不得不调用ToLower()因为 TempData 总是会返回TrueFalse ,而不是truefalse 此处解释原因。

你应该做类似的事情

if (@(TempData["SuccessMessage"] == null ? "null" : ('"' + TempData["SuccessMessage"] + '"')) != null) {

以便在 TempDate 为 null 的情况下生成的标记将是

if (null != null) {

Jquery 中的 TempData 值如下所示。

$(document).ready(function () {
    var tempdataval = '@TempData["Value"]';
    if (tempdataval != null && tempdataval != '') {
        alert(tempdataval);
    }
});

您可以将 java 包裹在<text></text>以告诉 Razor 它不是 c#,而是在 ac# 块内

@if (TempData["SuccessMessage"] != null)
{
<text>
toastr.options = {
            "closeButton": true,
            "positionClass": "toast-bottom-right"
        }
        toastr.success("This is a test!");
</text>
}

您还可以将@(TempData["SuccessMessage"] != null)转换为 javascript bool,然后使用 javascript if 语句,就像这样......

var hasSuccessMsg = @(TempData["SuccessMessage"] != null) === 'true';
if (hasSuccessMsg) {
    //do your work here.
}
@if (TempData["SuccessMessage"] != null) {
    <script>
       $(document).ready(function() {
            toastr.options = {
                "closeButton": true,
                "positionClass": "toast-bottom-right"
            }
            toastr.success("This is a test!");     
      });
   </script>
 }

if(@ Html.Raw(Json.Encode(TempData [“Exists”]))!= null){

   toastr.error('oops!an error occured try again.');

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM