2009-06-16 19 views
0

ファイルをアップロードするためのすべての設定があり、正常に動作しています。しかし、私のフォームが提出される方法は、AJAXを介してです。サブミットするボタンは、JSがオフの場合でもtype = "submit"です。ASP.Net MVCファイルのアップロードに基づいてIsAjaxRequestプロパティを切り替えますか?

フォームを保存すると、コントローラはIsAjaxRequestがtrueかどうかを判断し、そうであればJSONを返します。それ以外の場合はRedirectToActionを返します。

私の入力タイプ= "ファイル"でファイルパスを指定しないときは、IsAjaxRequestをtrueとみなします。ファイルパスが設定されている場合、IsAjaxRequestはfalseとみなされます。それはどうやって決めるのですか?

私の他の問題は、IsAjaxRequestがfalseで、RedirectToAction( "Index")を実行しても実際にインデックスビューに送られないと思うということです。

おかげ

答えて

0

たぶん、問題はIsAjaxRequest()ではないでしょうか? - 着信リクエストでは単に["X-Requested-With"] == "XMLHttpRequest"が検索されます。 Mvc\AjaxRequestExtensions.csを参照してください:

public static class AjaxRequestExtensions { 
    public static bool IsAjaxRequest(this HttpRequestBase request) { 
     if (request == null) { 
      throw new ArgumentNullException("request"); 
     } 

     return (request["X-Requested-With"] == "XMLHttpRequest") 
      || ((request.Headers != null) 
       && (request.Headers["X-Requested-With"] == "XMLHttpRequest")); 
    } 
} 
+0

ファイルパスが設定されている場合、どういうわけかX-Requested-Withで追加されない要求ですか?私はそれがAJAXと何か関係があると思います。私はhttp://malsup.com/jquery/form/を使っています – Jon

関連する問題