MVC 3および4ルーティングでは、エリア名を指定せずにエリアの一部であるアクションへのパスを構成できることに気付きましたが、ビューは返されません。たとえば、次のコードを参照してください。
namespace APS.EIMS.UI.Areas.Admin
{
public class TestController : BaseController
{
public ActionResult Index()
{
return View();
}
public JsonResult GetNames()
{
var dc = GetDataContext();
var result = from m in dc.Db<IMS_Reject>()
select new { m.Id };
return Json(result, JsonRequestBehavior.AllowGet);
}
}
}
// localhost / Test / Indexを試すたびに、インデックスビューは見つかりませんが、エリア内のアクションへのパスをルーティングできます(// localhost / admin / test / indexでは期待どおりに機能します)。// localhost / admin / test/getnamesと//localhost/ test/getnamesでも同じ結果が得られます。なぜそれがこのように機能するのですか?エリア名なしでアクションを見つけるにはどうすればよいですか?開発中のアプリケーションでこれを防ぐ必要がありますか?(アドレスが完全な場合にのみルートを意味し、それ以外の場合は404エラーを意味します)