テーブルと呼ばれるコントローラのActionResultにPOSTしようとしているJavaScriptが少しあります。何らかの理由でルーティングが機能していません。ホームではないコントローラでActionResultを呼び出す
マイJavascriptを(私の見解の上部のスクリプトタグ内):
$(document).ready(function() {
$('#somevalue').autocomplete({
source: '@Url.Action("Tables/GetExpenseTypes")'
});
})
マイコントローラー:私が呼び出しを実行するたびに
public class TablesController : Controller
{
public ActionResult GetExpenseTypes(string term)
{
return Json(Blah);
}
}
、それは404 Not Foundエラーを返します。私は要求を見てみると、それは次のようになります。
http://localhost:56569/Home/Tables/GetExpenseTypes
それが重要ならば、これは私のRouteConfig.csです:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id =
UrlParameter.Optional }
);
私の要求に関係なく、ホームコントローラに行きませんしたくない理由何?私はスラッシュとコントローラ/アクションの前にいる場合:それは違いはありません
$('#somevalue').autocomplete({
source: '@Url.Action("/Tables/GetExpenseTypes")'
});
を誤っ
Url.Action
ヘルパーを使用しているため、要求はまだホームコントローラ
チャームのように働いた。ありがとう@Shyju – BKahuna