繁体   English   中英

在MVC3中使用自定义JSON(POST)绑定重载Controller方法

[英]Overloading Controller methods with custom JSON(POST) binding in MVC3

在尝试使用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中实现?

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

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM