【发布时间】:2013-01-02 15:55:21
【问题描述】:
我刚刚意识到 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 错误)
【问题讨论】:
-
您必须设置一条路线以将该网址指向该区域。安装路由调试器。它会告诉你哪些路线被击中。从那里,您应该能够调整/删除违规路线。
标签: asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-routing