2017-09-04 6 views
0

動作中のCore 1.1 Webアプリケーションでコントローラの名前を変更しました。コントローラのURLは、コードスニペットでは、ブートストラップポップオーバーから呼び出されます。コア1.1のコントローラの名前変更で404エラーが発生する

$('.main-select').on('shown.bs.popover', function() { 
     $('.submit').click(function() { 
      var fromval = $('.popover #fromvalue').val(); 
      var toval = $('.popover #tovalue').val(); 
      var option = { 
       url: "/ProductMixController/GetDateData?dStart=" + fromval + "&" + "dEnd=" + toval, 
       data: JSON.stringify({ dStart: fromval, dEnd: toval }), 
       method: 'post', 
       dataType: 'json', 
       contentType: 'application/json;charset=utf-8' 
      }; 

      window.location.href = option.url; 

元のコントローラ名がProductMixSSだったと予想されるとして働いていました。 MSの命名規則に従うために、私はそれをProductMixControllerに改名しました。その結果、一貫した404エラーが発生しました。コントローラーとモデルコードは変更されず、すべてのキャッシュがクリアされています.NuGetのスペルチェックでもチェックされ、ダブルチェックされ、設定ファイルがチェックされ、ポート番号が変更され、ボックスさえ再起動しました。

私はこの「バグ」への言及を見ましたが、私が見ているのと同じ問題に対処するようには見えません。

So WTF。

答えて

0

長年にわたるMVC規則および規制の下では、コントローラークラスには、同様の名前のアクションにルーティングするために、その名前に「Controller」サフィックスが必要であるという問題があります。独自のルーティングをコーディングしてこのコンベンションに従わない場合は、同じ問題が発生します。 .Net Coreはこのregを多少緩めて、モデル、コントローラ、ビューファイルを必要に応じて配置することが可能になりました。しかし、それは、元のMVCのコンパイルと実行パスに従って、クラス名の "Controller"接尾辞を置いているようです。

うわー。これは、2日間の練習でした。

+0

詳細:https://www.red-gate.com/simple-talk/dotnet/asp-net/control-controller-asp-net-mvc/ – Maris

関連する問題