2017-04-03 10 views
0

上記のアクションフィルタメソッドでアクションパラメータが必要です。あなたがこれを行うことによって、アクションパラメータを取得することができます私にOnResultExecutedアクションフィルタでActionParametersを取得する方法

Public Overrides Sub OnResultExecuted(filterContext As ResultExecutedContext) 
    Dim actionParameter = filterContext.ActionParameters(parameterName) 
End Sub 


var params={}; 
params.Comments=getvaluebyid("TxtComment"); 
$.ajax({ 
     type: "POST", 
     url: '/ControllerName/ActionName', 
     async: true, 
     data: $.toJSON(params), 
     dataType: "json", 
     contentType: 'application/json; charset=utf-8', 
+0

OnResultExecutedアクションフィルタでアクションパラメータを取得する方法 –

+0

C#で。 ' – mmushtaq

+0

filterContext.ActionParametersは、OnResultExecutedで無効です。 –

答えて

0

を助けてください:

public override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     var controllerActionDescriptor = filterContext.ActionDescriptor as System.Web.Mvc.ReflectedActionDescriptor; 
     ParameterDescriptor[]pdes= controllerActionDescriptor.GetParameters(); 
     foreach (var item in pdes) 
     { 
      var parameterName = item.ParameterName; 
      var parameterType=item.ParameterType; 
     } 
    } 

値を取得するために、あなたがこれを行うことができます:

HttpContext.Current.Request.QueryString["Id"]// where "Id" is the key, you can use index here too. 

はそれが役に立てば幸い!

+0

( 'filterContext.ActionParametersのvarパラメータ){response.Write(string.Format(" {0}:{1} "、parameter.Key、parameter.Value))}パラメータ値が必要です。上記のコードのために私はパラメータ名だけを得ることができます。 –

+0

私の場合、HttpContext.Current.Request.QueryStringは空で、HttpContext.Current.Request.Formも空です。 –

+0

タイプ: "POST"、 URL: '/コントローラ名/ ACTIONNAME'、 非同期:真、 データ:$ .toJSON(PARAMS)、 データ型: "JSON"、 のcontentType:「アプリケーション/ JSON。 charset = utf-8 ' –

0

私はこの問題の解決策を得ました。 json結果を得るための以下の解決策を見つけてください。以下のメソッドについては、リクエストを渡す必要があります。

private string GetJsonContents(System.Web.HttpRequestBase Request) 
{ 
    string JsonContents = string.Empty; 
    try 
    { 
    using (Stream receiveStream = Request.InputStream) 
     { 
     using (StreamReader readStream = new StreamReader(receiveStream)) 
     { 
     receiveStream.Seek(0, System.IO.SeekOrigin.Begin); 
     JsonContents = readStream.ReadToEnd(); 
     } 
    } 
    } 
    catch 
    { 
    enter code here 
    } 
    return JsonContents; 
} 
0

私は同じ問題を抱えていました。 これは私の回避策です。

public override void OnActionExecuted(ActionExecutedContext filterContext) 
    { var myValue = ((MyClass)((JsonResult)filterContext.Result).Data).Value; } 

この情報が役立ちますようお願いいたします。