是否有人试图为ASP.NET MVC 2异步操作创建强类型API?
祝你好运, Alexey Zakharov
答案 0 :(得分:0)
如果我理解正确的话,我相信我们最近做过类似的事。我们使用ASP.NET MVC 2 Futures库中的JsonValueProviderFactory来实现强类型操作(关于haaked.com的更多信息)。
对于异步操作,我们有类似的内容:
[HandleError]
public class HomeController : AsyncController
{
[HttpPost]
public void IndexAsync(Person person)
{
DoSomething();
}
public ActionResult IndexCompleted()
{
return View();
}
}
public class Person
{
public string Forename { get; set; }
public string Surname { get; set; }
}
并使用以下命令对操作进行POST:
{"Forename": "Cheesy", "Surname": "Goat"}
有一个很棒的Firefox插件可以帮助测试我称之为“REST客户端”的内容。
希望这有帮助。
答案 1 :(得分:-1)
MVC可以做到这一点,但我从您提供的代码示例中了解到,您需要基于json的API。
Microsoft针对这种情况创建了WebAPI,它既是强类型的,也遵循其底层设计中的MVC模式,但它也运行良好,可以在同一Web应用程序中与MVC一起使用。
然而:
如果您愿意,可以使用简单的Json序列化程序包从MVC控制器操作提供序列化对象,只需返回结果字符串,ActionResult也支持此场景,对于帖子使用内置元数据基础结构来验证您的类型特定来自帖子的数据为您提供所需的类型安全性。
将MVC控制器视为休息端点也是可能的,只需以正确的方式构建控制器以支持典型的REST调用。
但我强烈建议使用WebAPI,因为它更适合API场景。