首页 > 解决方案 > 如何在每列后添加新行以输出 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;
        }
    }

我该如何做到这一点并在每列之后添加新行

标签: asp.net-mvcasp.net-web-api

解决方案


您需要将 JSON 格式化程序更改为“缩进”。您似乎表明您没有使用 .Net Core,因此此答案适用于 .Net Framework 上的 WebApi。

将此行添加到 global.asax 中的 Application_Start 方法:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;

推荐阅读