3

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

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

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

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

我想知道是否可以以某种方式使用上述标记并检查此 div 是否存在,如果存在,则显示 toastr?或者也许我可以将这两个检查合二为一?建议?

4

5 回答 5

6

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

$(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 总是会返回Trueor False,而不是trueor false此处解释了其原因。

于 2015-05-12T12:03:22.433 回答
4

你应该做类似的事情

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

这样在 TempDate 为空的情况下生成的标记将是

if (null != null) {
于 2015-05-05T16:07:36.640 回答
1

Jquery 中的 TempData 值如下所示。

$(document).ready(function () {
    var tempdataval = '@TempData["Value"]';
    if (tempdataval != null && tempdataval != '') {
        alert(tempdataval);
    }
});
于 2015-11-23T11:49:12.477 回答
0

您可以将您的 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.
}
于 2015-05-05T16:02:04.597 回答
0
@if (TempData["SuccessMessage"] != null) {
    <script>
       $(document).ready(function() {
            toastr.options = {
                "closeButton": true,
                "positionClass": "toast-bottom-right"
            }
            toastr.success("This is a test!");     
      });
   </script>
 }
于 2015-05-05T16:37:06.527 回答