在尝试使用MVC 3的一些很酷的新功能时,我遇到了路障。
是否可以使用MVC3使用自定义JSON绑定重载控制器?
它看起来不像现在自动工作.... 最好的方法是什么? 例如 如果我想实现以下端点
[HttpPost]
public ActionResult GetPet(Cat catObject)
{
return Json(catObject.purr());
}
超载此端点
[HttpPost]
public ActionResult GetPet(Dog dogObject)
{
return Json(dog.bark());
}
如果不使用第三方库或System.Web.Script.Serialization.JavaScriptSerializer
,我有什么方法可以做到这一点还有什么特别的原因,这还没有在mvc3中实现吗?
答案 0 :(得分:0)
在控制器上重载Json对象似乎是一个遥远的可能性,而不是现在的现实。 这是我最接近的重载动作
[HttpPost]
public ActionResult GetPet()
{
Cat catObj;
Dog dogObg;
if (TryUpdateModel(catObj))
return Json(catObj.purr());
else
{
ModelState.Clear();
if (TryUpdateModel(dogObg))
return Json(dogObj.bark());
else
{
ModelState.Clear();
ModelState.AddModelError("InvalidInput", "The given input does not match with any of the accepted JSON types");
return new HttpBadRequestResult(ModelState);
}
}
}