asp.net-mvc - 如何在每列后添加新行以输出 api mvc 控制器代码?
问题描述
我想在 mvc 控制器中的 api 输出的每一列之后添加新行,这是控制器代码:
public HttpResponseMessage GetUsers(string username, string password, int branchid)
{
using (DB entities = new DB())
{
var entityuser = entities.Users_web.Where(user => user.user_name.Equals(username, StringComparison.OrdinalIgnoreCase) && user.user_password == password && user.branch_id == branchid).ToList();
Userloginstatus userlogin = new Userloginstatus
{
Success = true,
users = entityuser,
Message = "User Name Found"
};
FalseStatus falsestat = new FalseStatus
{
Success = false,
Message = "User Name or Password incorrect"
};
if (entityuser.Any())
{
return Request.CreateResponse(HttpStatusCode.OK, userlogin);
}
else
{
return Request.CreateResponse(HttpStatusCode.NotFound,falsestat);
}
}
}
如果用户找到并且成功将所有数据显示在一行中,则现在的输出:
{"Success":true,"users":[{"user_id":3924,"user_fullname":"suaad alhaijili ","user_phone":"050089 ","user_address":"\r\n","user_email":"","user_code":"1","date_added":"2020-12-13T19:54:02.657","user_kind_id":3,"user_name":"123456789","user_password":"123456","group_id":1,"user_logo":null,"custid":0,"patient_no":30,"branch_id":2}],"Message":"User Name Found"}
但我需要输出是这样的,并在每列之后添加新行:
{"Success":true,
"users":[{
"user_id":3924,
"user_fullname":"suaad ",
"user_phone":"050089 ",
"user_address":"\r\n",
"user_email":"",
"user_code":"1",
"date_added":"2020-12-13T19:54:02.657",
"user_kind_id":3,
"user_name":"123456789",
"user_password":"123456",
"group_id":1,
"user_logo":null,
"custid":0,
"patient_no":30,
"branch_id":2
}],
"Message":"User Name Found"}
更新:
如解决方案中所述,我将最后一行添加到文件 global.asax 中,但仍然没有根据需要进行格式化,但同一行中的所有数据仍位于同一行:
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
}
}
这也是 webapiconfig 文件
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html"));
var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
config.Routes.MapHttpRoute(
name: "ActionRoute",
routeTemplate: "api/{controller}/{action}"
// defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Remove(config.Formatters.XmlFormatter);
// config.Formatters.XmlFormatter.UseXmlSerializer = true;
}
}
我该如何做到这一点并在每列之后添加新行
解决方案
您需要将 JSON 格式化程序更改为“缩进”。您似乎表明您没有使用 .Net Core,因此此答案适用于 .Net Framework 上的 WebApi。
将此行添加到 global.asax 中的 Application_Start 方法:
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
推荐阅读
- c++ - 将 cout 添加为友元运算符后,c++ 仍然显示错误 1)cout is ambiguous 。为什么?
- jquery - 在添加/删除类之前添加额外的 160 像素?
- python - 提取文本并写入新的 Word 文件
- android - 如何在我的 c++ 文件中定义外部“C”函数?
- regex - 从VBA中的字符串中提取数据的最佳方法
- blogger - 使用 Blogger API V3 时如何对评论进行降序排序
- azure - 集成 Azure 服务总线主题和 Azure 函数
- python - 在 python 中查找读取文件中的字符串后出现的数字的平均值,中间有空格,例如:Tom Bombadil_______6.5 5.5 4.5
- azure - 通过 ARM 模板为应用服务使用 Key Vault 引用
- node.js - 模拟 ES6 BigQuery 类