2011-03-24 67 views
0

結合我達到了道路隆起,而試圖用一些MVC的很酷的新功能的3重載控制器方法使用自定義JSON(POST)在MVC3

是否有可能使用使用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

在控制器上重載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); 
    } 
} 

} 
相關問題