MVC3 с JsonFilterAttribute больше не работает - PullRequest
1 голос
/ 07 марта 2011

Этот код работал нормально, прежде чем я перешел на MVC3 ...

        [HttpPost]
    [ActionName("GetCommentListForServiceCall")]
    [UrlRoute(Path = "mobile/servicecalls/{id}/comments", Order=1)]
    [UrlRouteParameterConstraint(Name = "id", Regex = @"\d+")]
    [OutputCache(CacheProfile = "MobileCacheProfile")]
    [JsonFilter(JsonDataType = typeof(ServiceCallCommentNewDTO), Param = "comment")]
    public JsonNetResult CreateCommentForServiceCall(int id, ServiceCallCommentNewDTO comment)
    {
        ServiceCallComment entity = coreSvc.SaveServiceCallComment(id, 0, comment.CategoryId, comment.Comment);
        SetResponseCode(HttpStatusCode.Created);
        SetContentLocation(string.Format("mobile/servicecalls/{0}/comments/{1}", id.ToString(), entity.Id.ToString()));
        return new JsonNetResult(entity); ;
    }

вот код JSonFilterAttribute

    public class JsonFilterAttribute : ActionFilterAttribute
{
    public string Param { get; set; }
    public Type JsonDataType { get; set; }
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.ContentType.Contains("application/json"))
        {
            string inputContent;
            using (var sr = new StreamReader(filterContext.HttpContext.Request.InputStream))
            {
                inputContent = sr.ReadToEnd();
            }
            var result = JsonConvert.DeserializeObject(inputContent, JsonDataType, new JsonSerializerSettings{TypeNameHandling = TypeNameHandling.All});
            filterContext.ActionParameters[Param] = result;
        }
    }
}

Теперь JsonFilter больше не получает объект,Это всегда возвращает нуль?

Что-то, что я должен сделать в MVC3?

1 Ответ

2 голосов
/ 07 марта 2011

Этот атрибут больше не нужен, так как ASP.NET MVC 3 имеет встроенную функциональность .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...