今天下午发现一个新建的项目工作异常,主要表现为应该返回JSON的Action没有返回JSON字符串,而是返回了JsonResult的对象名,即字符串“System.Web.Mvc.JsonResult”。
由于项目中不是直接在Action中构建的Json(),而是由另一个Json处理类专门构建JsonResult,测试发现在Action中直接构建Json()没有问题,怀疑是Json处理类出了问题,反复测试没发现问题,因为旧项目中都在使用相同的处理类,工作一切正常。
折腾了一下午,最终发现竟然是VS2012创建的MVC4 Empty项目的问题,Empty项目的Web.config中竟然连runtime节点都没有,添加了runtime节点后(主要是System.Web.Mvc),程序工作正常了。
结论:尽量不要使用MVC4的Empty项目,可以创建Basic项目,再把不必要的文件删除即可。