You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET MVC中返回API响应消息?

实现API响应消息返回给用户的方案

API响应结构说明

API返回的JSON包含Message和Data两个核心字段,示例如下:

{
  "Message": "获取国家列表成功",
  "Data": [
    {"Id": 1, "CountryName": "示例国家1"},
    {"Id": 2, "CountryName": "示例国家2"}
  ]
}

1. 更新模型类

在JsonCountryData中添加Message属性,确保能反序列化API返回的消息内容:

namespace EVisaProject.Models
{
    public class CountryModel
    {
        public int Id { get; set; }
        public string CountryName { get; set; }
    }

    public class JsonCountryData
    {
        public string Message { get; set; } // 新增消息字段
        public List<CountryModel> Data { get; set; }
    }
}

2. 修改控制器逻辑

统一处理API请求的成功与失败场景,提取消息并传递到视图:

[HttpGet]
public async Task<IActionResult> ListCountries()
{
    var countries = new List<CountryModel>();
    string apiMessage = string.Empty;
    var response = await _client.GetAsync("countries/getall");

    string apiResponse = await response.Content.ReadAsStringAsync();
    var jsonData = JsonConvert.DeserializeObject<JsonCountryData>(apiResponse);
    
    if (response.IsSuccessStatusCode)
    {
        countries = jsonData.Data ?? new List<CountryModel>();
        apiMessage = jsonData.Message;
    }
    else
    {
        // 处理请求失败,优先取API返回的错误消息,否则用状态码提示
        apiMessage = jsonData.Message ?? $"请求失败,状态码:{response.StatusCode}";
    }

    // 通过ViewBag将消息传递给视图
    ViewBag.ApiMessage = apiMessage;
    return View(countries);
}

3. 在视图中展示消息

在对应的Razor视图中添加消息展示代码,可放在列表上方:

@if (!string.IsNullOrEmpty(ViewBag.ApiMessage))
{
    <div class="alert alert-info">
        @ViewBag.ApiMessage
    </div>
}

<!-- 原有国家列表渲染代码 -->
@foreach (var country in Model)
{
    <div>@country.Id - @country.CountryName</div>
}

内容的提问来源于stack exchange,提问作者mustafasamet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:15:43