Saltar al contenido

Pasar el objeto json dinámico al controlador C# MVC

Esta es la respuesta más válida que encomtrarás compartir, pero obsérvala detenidamente y analiza si se adapta a tu proyecto.

Solución:

Presumiblemente, la acción que acepta la entrada solo se usa para este propósito en particular, por lo que podría usar el FormCollection objeto y luego todas sus propiedades json de su objeto se agregarán al string colección.

[HttpPost]
public JsonResult JsonAction(FormCollection collection)

    string id = collection["id"];
    return this.Json(null);

Puede enviar JSON y analizarlo como dinámico si usa un contenedor como este:

JS:

var data = // Build an object, or null, or whatever you're sending back to the server here
var wrapper =  d: data ; // Wrap the object to work around MVC ModelBinder

C#, modelo de entrada:

/// 
/// The JsonDynamicValueProvider supports dynamic for all properties but not the
/// root InputModel.
/// 
/// Work around this with a dummy wrapper we can reuse across methods.
/// 
public class JsonDynamicWrapper

    /// 
    /// Dynamic json obj will be in d.
    /// 
    /// Send to server like:
    /// 
    ///  d: data 
    /// 
    public dynamic d  get; set; 

C#, acción del controlador:

public JsonResult Edit(JsonDynamicWrapper json)

    dynamic data = json.d; // Get the actual data out of the object

    // Do something with it

    return Json(null);

Es molesto agregar el envoltorio en el lado JS, pero simple y limpio si puede pasarlo.

Actualizar

También debe cambiar a Json.Net como el analizador JSON predeterminado para que esto funcione; en MVC4, por alguna razón, han reemplazado casi todo con Json.Net, excepto la serialización y deserialización del controlador.

No es muy difícil: siga este artículo: http://www.dalsoft.co.uk/blog/index.php/2012/01/10/asp-net-mvc-3-improved-jsonvalueproviderfactory-using-json-net /

Otra solución es usar un tipo dinámico en su modelo. Escribí una publicación de blog sobre cómo enlazar tipos dinámicos usando ValueProviderFactory http://www.dalsoft.co.uk/blog/index.php/2012/01/10/asp-net-mvc-3-improved -jsonvalueproviderfactory-usando-json-net/

Te mostramos comentarios y calificaciones

Tienes la opción de añadir valor a nuestro contenido añadiendo tu experiencia en las observaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *