DotNetNuke Serviceframework基于ASP.NET MVC 2,因此不包括开箱即用的json模型绑定。
我尝试了很多方法:
调用注册这些代码的代码,但是没有调用这些对象本身的方法。
在DotNetNuke中注册这些本身就是一个有趣的领域,我们无法访问global.asax文件。
我还试图在控制器中反序列化请求输入流,但我在那里得到一个nullreferenceexception,并且我得到了正确的数据大小,但是所有的空值!
有什么想法吗?!
答案 0 :(得分:1)
确定,
我有一个干净且功能齐全的解决方法。
我正在使用来自here的jquery插件。这会将json转换为标准表格形式的帖子。 用jquery&淘汰赛看起来像这样:
$.ajax({
url: '<%= ModulePath %>Api/Register/Search',
type: 'POST',
data: $.toDictionary(ko.mapping.toJS($root),"",true),
success: function (data) { //do something });
让问题保持开放,以防任何人有任何想法让json直接工作。
答案 1 :(得分:0)
您需要注册一个JSON值提供程序才能使其正常工作。有关详细信息,请参阅http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx。
注册价值提供者的最佳方式是在路线映射器中执行此操作。务必保护注册以确保它只发生一次,因为路由映射器偶尔会被调用一次。如果要在部署到服务器的模块中执行此操作,则无法控制您应该检查工厂集合的内容,以确保没有其他服务已经注册了值提供程序。
DNN 7中的服务框架基于WebAPI并且原生支持JSON,因此这种麻烦很快就会消失。