【问题标题】:How to get the value of ViewBag in C# (MVC or Core) when calling API? [duplicate]调用API时如何在C#(MVC或Core)中获取ViewBag的值? [复制]
【发布时间】:2020-12-22 08:08:50
【问题描述】:

我使用 $.Ajax 调用 C# API 来获取数据,在 Index Action 的 Home 控制器中我定义了一个 ViewBag:

public IActionResult Index()
{
     ViewBag.UserInfo = "TEST";
     return View();
}

在获取 API 操作中:

[HttpGet("Get")]
public IActionResult Get()
{ 
     var x = ViewBag.UserInfo;
     return Json(new { result = x});
}

但是当我调用API并调试代码时,我发现“x”是空的

请指教

【问题讨论】:

    标签: c# ajax api get viewbag


    【解决方案1】:

    你不能那样做。您正在尝试通过 Viewbag 从控制器中的视图获取数据。

    这只适用于相反的方式

    • 要查看的控制器操作。好的
    • 查看到控制器操作。做不到
    • 查看(ajax 或其他)到控制器操作。做不到
    • API 调用查看。做不到。

    只有 mvc 动作返回 viewbag 数据,因为值和页面是在后面的代码中创建的

    这样想。当您设置 viewbag 时,它在您的 Web 服务器上有一个值。

    Web 服务器在处理您的请求时,将创建一个完整的 html 来回复用户。在那里它将使用视图包值。

    一旦客户端获得了html页面,就没有viewbag了。该值可能在那里,因此您可以将其发回,但您无法以您尝试的方式访问它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多