ASP.NET MVC2 e JSON Model Binding com validação a um método de ação
-
25-09-2019 - |
Pergunta
Phil Haack's entrada no blog descreve esse processo usando o futuro do ASP.NET MVC 2 e Crockford's JSON2.JS. John Resig também recomenda o uso de JSON2.JS de Crockford em Este artigo em relação a "usar rigoroso";.
Para obter esse recurso hoje, você ainda baixaria o MVC 2 Futures, ou isso está incluído na final do MVC 2, ou essa parte da nova prévia do MVC 3?
Editar:
De acordo com a sugestão de Jakub (e Phil Haack, Woot!), Meu roteiro finalmente funciona. Uma grande apreciação a ambos.
<script type="text/javascript">
$(document).ready(function () {
var myData = {};
myData.value = '9/14/2010 12:00:00 AM';
var myJson = JSON.stringify(myData);
$.ajax({
type: "POST",
url: "/AdSketch/GetPrintProducts",
data: myJson,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert(result);
}
});
});
</script>
O código do controlador MVC:
public JsonResult GetPrintProducts(string value)
{ // At this point "value" holds "9/14/2010 12:00:00 AM"
return Json(value);
}
Solução
Para MVC2, você precisa de futuros. Obtenha a DLL, adicione referência a ele e no Global.asax add (Application_start):
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
Não sei sobre o MVC3 - estou esperando um RTM. Mas eu o encorajo a tentar, pois enviar JSON para ações é uma felicidade pura ;-)
Outras dicas
No MVC 3, existe ValueProviderFacories fornecido fora da caixa.