Intenta entender el código correctamente antes de utilizarlo a tu trabajo y si tdeseas aportar algo puedes decirlo en los comentarios.
Solución:
Si estás usando Newtonsoft.Jsonpuedes añadir JsonPropiedades a su modelo de vista:
public class LoginModel : IData
[JsonProperty(PropertyName = "email")]
public string Email get;set;
[JsonProperty(PropertyName = "password")]
public string Password get;set;
Para forzar todos los datos json devueltos desde api a camel case, es más fácil usar Newtonsoft Json con el solucionador de contratos de camel case predeterminado.
Crea una clase como esta:
using Newtonsoft.Json.Serialization;
internal class JsonContentNegotiator : IContentNegotiator
private readonly JsonMediaTypeFormatter _jsonFormatter;
public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
_jsonFormatter = formatter;
_jsonFormatter.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver();
public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable formatters)
return new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
y configure esto durante la configuración de la API (al inicio):
var jsonFormatter = new JsonMediaTypeFormatter();
httpConfiguration.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));
Puede agregar las dos declaraciones siguientes en la configuración de la API web o en el archivo de inicio
using Newtonsoft.Json; using Newtonsoft.Json.Serialization; GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
Pero es muy importante usar el return Ok()
método en lugar de return Json()
de lo contrario; Esto no funcionará.
si tiene que usar el método Json (y no tiene otra opción), vea esta respuesta https://stackoverflow.com/a/28960505/4390133
Al final de todo puedes encontrar las aclaraciones de otros gestores de proyectos, tú todavía tienes la libertad de mostrar el tuyo si te apetece.