【问题标题】:Display Sweet alert ViewBag Value显示 Sweet alert ViewBag 值
【发布时间】:2021-10-10 05:02:13
【问题描述】:

我正在开发 asp.net 核心项目。我可以在 sweealert 中显示 ViewBag 值吗?

Swal.fire({
    title: "Successfully Added!",
    text: "@ViewBag.OrderNo",
    type: "success",
    confirmButtonClass: 'btn btn-primary',
    buttonsStyling: false,
    ....
})

编辑

【问题讨论】:

  • 嗨@Chaam,你当然可以。您的代码似乎是正确的。您收到的错误信息是什么?
  • 目前不显示viewbag值
  • 我添加了屏幕截图
  • 嗨@Chaam,它在我的项目中运行良好,你能分享一下你是如何配置你的viewbag值的吗?你用的是 asp.net core mvc 还是 razor pages?
  • 我正在使用 asp.net core razor 页面。但它不起作用。我会更新我的控制器

标签: javascript asp.net asp.net-core sweetalert


【解决方案1】:

如果您想在 ajax 回传后显示甜蜜警报。 ViewBag 不像你想要的那样工作,也没有必要。

ViewBag 只是一个在渲染页面时传递给视图的对象。将它与 AJAX 一起使用没有任何意义;您的服务器端 Razor 代码仅在初始服务器渲染上运行。

正确的做法是将数据添加到响应数据中。

如下改变:

<script>
    $.ajax({
        type: "POST",
        url: "/home/AddPurchaseOrder",
        contentType: "application/json",
        data: JSON.stringify({ "Id": 5, "PurchaseOrderNo": "2342342424" }),
        success: function (response) {
            Swal.fire({
                title: "Successfully Added!",
                text: response.orderNo,    //change here...
                icon: 'success',
                confirmButtonClass: 'btn btn-primary',
                buttonsStyling: false
            })
        },
        failure: function (response) {
            //...
        }
    });      
</script>

控制器:

public class HomeController : Controller
{        
    [HttpPost]
    public JsonResult AddPurchaseOrder([FromBody] PurchaseOrder purchaseOrder) 
    { 
        string id = purchaseOrder.Id.ToString(); 
        purchaseOrder.OrderNo = DateTime.Now.ToString("yyyyMMdd") + id; 
        //ViewBag.OrderNo = purchaseOrder.PurchaseOrderNo;
        return Json(new { Id= purchaseOrder.Id , OrderNo= purchaseOrder.PurchaseOrderNo }); 
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多