当我在 mvc 4 中的服务器端操作方法中将参数设置为动态时,我收到了这个长错误。
{"Message":"发生错误。","ExceptionMessage":"'Newtonsoft.Json.Linq.JObject' 不包含 'TournamentId' 的定义","ExceptionType":"Microsoft.CSharp.RuntimeBinder.RuntimeBinderException ","StackTrace":" 在 CallSite.Target(Closure , CallSite , Object )\r\n 在 System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,Tret](CallSite 站点, T0 arg0)\r\n 在 ManagerDeTorneos.Web .Controllers.TournamentDateController.Create(Object data) in F:\Prince\Projects\Juan\trunk\ManagerDeTorneos.Web\Controllers\TournamentDateController.cs:line 133\r\n at lambda_method(Closure , Object , Object[] )\ r\n 在 System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c_ DisplayClass13.bSystem.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute 的 _c(对象实例,Object[] 方法参数)\r\n(对象实例,Object[] 参数)\r\n 在 System.Threading.Tasks.TaskHelpers。 RunSynchronously[TResult](Func`1 func, CancellationToken cancelToken)"}
[HttpPost]
public HttpResponseMessage AddMatch(dynamic data)
{
int tournamentDateId = (int)data.TournamentDateId.Value;
var tournamentDate = Catalog.TournamentDateRepository.GetById(tournamentDateId);
if (tournamentDate == null)
{
throw ExceptionHelper.NotFound("Fecha no encontrada!");
}
在上述方法中,数据包含从 ajax 调用发送的锦标赛 ID 为JSON.Stringify({'TournamentId':'5'}).
谁能告诉我错误的原因是什么。我什至也替换了 Newtonsoft.Json 的 dll