从我的 C# 函数更新 Javascript 文件的变量

update a variable of Javascript file from my c# function

本文关键字:文件 变量 Javascript 更新 我的 函数      更新时间:2023-09-26

我在 c# 中有一个函数,它可以获取广告的预算和 Id-s,并将这些广告的所有预算更新为预算值为 budget

[HttpPost]
public ActionResult UpdateAdsBudgets(string budget, string[] Ids)
{
    ServerResult serverResult = null;
    try
    {
        int numOfSuccess = 0;
        for (int i = 0; i < Ids.Length; i++)
        {
            serverResult = UpdateAdBudget(Ids[i]);
            if (serverResult.ServerResultState == ServerResultState.SUCCESS)
            {
                numOfSuccess++;
            }
         }
     }
 }

我在js文件中调用了这个函数:

$.ajax({
    dataType: 'json',
    type: "POST",
    traditional: true,
    url: "/AdsController/UpdateAdsBudgets",
    data: { budget: budget, Ids: adsIds },
    success: function (serverResult) {
    },
    error: function (exception) {
    }
});

是否有选项可以显示包含被调用函数信息的消息?我的意思是:2/5 ads were updated,其中 2 是 numOfSuccess(我的 c# 文件的变量),5 是:adsIds.length

我知道我可以做很多 ajax 调用(针对每个广告),然后将其计入成功,但是是否有一个选项可以让 c# 函数在线更新我的 js 文件中的变量?(假设变量:"数字成功广告")。

任何帮助表示赞赏!

为什么不直接return Json(YOR_DATA_YEAR)并在JavaScript ajax 函数的成功处理程序中处理它。

public ActionResult UpdateAdsBudgets(string budget, string[] Ids)
{
    ServerResult serverResult = null;
    try
    {
        int numOfSuccess = 0;
        for (int i = 0; i < Ids.Length; i++)
        {
            serverResult = UpdateAdBudget(Ids[i]);
            if (serverResult.ServerResultState == ServerResultState.SUCCESS)
            {
                numOfSuccess++;
            }
         }
     }
     return Json(YOUR_DATA); 
 }

你可以从控制器返回一个 JsonResult,如下所示:

[HttpPost]
public ActionResult UpdateAdsBudgets(string budget, string[] Ids)
{
    ServerResult serverResult = null;
    try
    {
        int numOfSuccess = 0;
        for (int i = 0; i < Ids.Length; i++)
        {
            serverResult = UpdateAdBudget(Ids[i]);
            if (serverResult.ServerResultState == ServerResultState.SUCCESS)
            {
                numOfSuccess++;
            }
         }
     }
    return Json(numOfSuccess);
 }

然后,您可以在 Javascript 中发出警报以通知用户。

 $.ajax({
     dataType: 'json',
     type: "POST",
     traditional: true,
     url: "/AdsController/UpdateAdsBudgets",
     data: { budget: budget, Ids: adsIds },
     success: function (serverResult) {
        alert(serverResult + "/" + adsIds.length + " ads were updated");
     },
        error: function (exception) {
     } });

是否有一个选项,C#的功能将在线更新我的JS文件中的变量

不,您的 ASP.NET 服务对客户一无所知,您唯一的选择是将所需的信息作为帖子的一部分传递回去,例如

[HttpPost]
public ActionResult UpdateAdsBudgets(string budget, string[] Ids)
{
    ...
    return Json(numOfSuccess);
}

然后在您的success回调中

success: function (serverResult) {
    alert(serverResult+ '/' + adsIds.length + ' ads were updated');
}