2016-08-16 14 views
0

私は別の名前空間私は雇用の名前空間にTestControllerにAJAXでファイルを送信する必要が AJAX + ASP MVC不明瞭コントローラ

Web.Mvc.Areas.Company.Controllers 
{ 
    public class TestController {} 
} 

Web.Mvc.Areas.Employment.Controllers 
{ 
    public class TestController {} 
} 

に同じ名前の2つのコントローラを含むプロジェクトに取り組んで

$.ajax({ 
           url: 'Test/UploadFiles', 
           type: "POST", 
           contentType: false, 
           processData: false, 
           data: fileData, 
           success: function(result) { 
            alert(result); 
           }, 
           error: function(err) { 
            alert(err.statusText); 
           } 
          }); 

リクエスト後にエラー500が表示され、同じ名前のコントローラが2つ見つかりました。 ajaxリクエストに正しい名前空間を入れる可能性はありますか?

+1

を使用することができます(デフォルトエリアルート登録ごとに)? – Shyju

答えて

4
 $.ajax({ 
      url: '/Employment/Test/UploadFiles', 
      type: "POST", 
      contentType: false, 
      processData: false, 
      data: fileData, 
      success: function(result) { 
       alert(result); 
      }, 
      error: function(err) { 
       alert(err.statusText); 
      } 
     }); 

やイベントあなたはカミソリの構文を注入することができた場合、より良い:

 $.ajax({ 
      url: '@Url.Action("UploadFiles", "Test", new {area = "Employment"})', 
      type: "POST", 
      contentType: false, 
      processData: false, 
      data: fileData, 
      success: function(result) { 
       alert(result); 
      }, 
      error: function(err) { 
       alert(err.statusText); 
      } 
     }); 
+0

リファクタリングなどと組み合わせたときのベストな "型安全"な方法 - コンパイラエラーが発生しないので、緩やかに使用する;リファクタリングツールの助けになる)は間違いなく ''@ Url.Action()'メソッドである。また、JS内の文字列としてレンダリングする必要があるので、囲む ''のマークに注意してください –

0

あなたはそれが地域の下にある場合は、あなたがURLに地域名を含めるように想定していないattribute based routing

関連する問題