2012-01-17 22 views
5

estoy usando ASP.NET MVC 3 para construir una aplicación, pero estoy teniendo un problema al intentar obtener una visión parcial; Aquí está mi código

La vista:

@{while (Model.Read()) 
{ 
    <ul class="tabs"> 
     <li id="general" class="active">Informations générals</li> 
     <li id="contact">Contacts</li> 
    </ul> 

    <div id="contentDetail"> 
     <div><b>Description :</b> @Model["Description"]</div> 
     <div><b>Activity :</b> @Model["Activity"]</div> 
    </div> 

    <script type="text/javascript"> 

     $("#contact").click(function() { 
      $.ajax({ 
       url: '@Url.Content("~/Company/Contacts/")', 
       type: 'get', 
       data: JSON.stringify('@Model["Id"]'), 
       datatype: 'json', 
       contentType: 'application/json; charset=utf-8', 
       success: function (data) { 
        $('#contentDetail').replaceWith(data); 
        }, 
       error: function (request, status, err) { 
        alert(status); 
        alert(err); 
        } 
      }); 
     }); 
    </script> 
} 

}

El controlador:

public ActionResult Contacts(int id) 
    { 
     return PartialView("_Contacts", getContactDetails(id)); 
    } 

"_Contacts" es mi visión parcial, que está fuertemente tipado.

Inicio I estaba claro, gracias ^^

+0

¿Cuál es el "problema"? ¿Ha supervisado la solicitud y respuesta HTTP para ver qué datos está enviando y qué va a recibir? ¿Sabes qué es el código de respuesta HTTP? ¿Has revisado los registros de errores en tu servidor para ver si es allí donde está tu problema? –

Respuesta

4

El siguiente es incorrecto:

data: JSON.stringify('@Model["Id"]') 

Reemplazar con un verdadero objeto JSON:

data: JSON.stringify(@(Html.Raw(Json.Encode(new { id = Model["Id"] })))) 

o con:

data: JSON.stringify({ id: "@Model["Id"]" }) 

que cuando r endered en el marcado final se verá así:

data: JSON.stringify({ id: "123" }) 
+0

Muchas gracias, funciona ^^ 'data: JSON.stringify ({id: '@Model [" Id "]'})' – SidAhmed

Cuestiones relacionadas