Asp.net mvc 在现有MVC应用程序中创建REST服务,供Xamarin应用程序使用

Asp.net mvc 在现有MVC应用程序中创建REST服务,供Xamarin应用程序使用,asp.net-mvc,json,xamarin.ios,xamarin,Asp.net Mvc,Json,Xamarin.ios,Xamarin,我有一个现有的MCV移动站点,我正在使用Xamarin创建一个移动应用程序。我想使用MVC应用程序中包含的相同服务来支持Xamarin应用程序。我曾尝试在我的MVC应用程序中创建一个REST服务,供Xamerin应用程序通过多种方式使用,但都发现了问题 我的第一次尝试是创建一个返回JsonResult的操作,并从Xamarin应用程序调用它。这是有效的,除了返回的响应是一个JsonResult,而不仅仅是JsonData,当我试图将其解析为一个通用对象时,我得到了一个错误 JsonResult的

我有一个现有的MCV移动站点,我正在使用Xamarin创建一个移动应用程序。我想使用MVC应用程序中包含的相同服务来支持Xamarin应用程序。我曾尝试在我的MVC应用程序中创建一个REST服务,供Xamerin应用程序通过多种方式使用,但都发现了问题

我的第一次尝试是创建一个返回JsonResult的操作,并从Xamarin应用程序调用它。这是有效的,除了返回的响应是一个JsonResult,而不仅仅是JsonData,当我试图将其解析为一个通用对象时,我得到了一个错误

JsonResult的示例: {{“ContentEncoding”:null,“ContentType”:null,“Data”:“[{“Id\”:1,“Name\”:“Calendar\”,“Category\”:null,“Price\”:0},{“Id\”:2,“Name\”:“Center\”,“Category\”:null,“Price\”:0},{“Id\”:3,“Name\”:“Maps\”,“Category\”:“Category\”:null,“Price\”:0},“,“jsonbehavior:“jsonbehavior”:0,“maxonlength\”,“resursession

错误: System.InvalidCastException:无法从源类型强制转换为目标类型。 在System.Json.JsonValue.op_隐式(System.Json.JsonValue)[0x00000]中:0

我的下一次尝试是使用简单的Get()创建一个从ApicController继承的新控制器。当我尝试调用此函数时,我得到错误: IControllerFactory“mobile.Infrastructure.DependencyInjection.StructureMapControllerFactory”未返回名为“appmenu”的控制器

虽然RequestContext对象中的路由信息是正确的,但是路由被正确解析,并且控制器名为AppMenuController


在这一点上,我不确定我是否在正确的道路上。谢谢。

我选择了另一条路。而不是将我的MVC站点和WCF服务绑定到同一个项目中;我故意把它们分开。主要是由于缩放问题。对我来说,在负载平衡器后面增加实例要容易得多,这取决于哪个项目使用率最高。我可以向自己保证,在我目前的使用案例中,手机的使用率很可能会比网络的使用率高。另外,我还必须为手机安装一个安全装置

我主张在构建移动服务之前,考虑移动服务的安全实现。让安全性持续下去会让你陷入困境,除非你正在构建一个企业内部应用程序,并且你的设备在你的本地网络/或VPN上使用

如果你是为了教育而做的,医疗行业有一个很像HIPAA的标准,要求你的数据以特定的方式处理


另外,我不使用System.Json,而是在应用商店中使用Json.net组件。它使事情变得更干净,您将发现自己必须在System.JSON中执行非常奇怪的操作。代码不如JSON.net直观,或者我假设ServiceStack。

我不确定发生了什么变化,但现在相同的代码似乎返回的是JSON字符串,而不是JsonResult。当我将htt请求的url放在浏览器中时,我得到的是Json,而不是以前的JsonResult,因此我的MVC代码中一定发生了一些变化。

谢谢。这些都是有效的观点,它们对这个问题没有帮助,因为我已经编写了MVC应用程序,只需要从中获取一组Json数据。我在Xamarin中使用JSON.Net,这就是为什么我很惊讶它不能将JsonResult解析为一个对象。你能发布你试图解析的类的代码吗?我没有试图解析为一个定义的类,我想创建一个泛型类thd,然后去掉数据属性。