我如何得到ASP.. NET以正确路由控制器
本文关键字:路由 控制器 NET 何得 ASP | 更新日期: 2023-09-27 17:52:59
我在我的控制器中有这个:
public ActionResult Details(int? id)
{
if(id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Sales saleRecord = new Sales();
var result = saleRecord.GetSalesOrderHeader((int)id);
return View(result);
}
然而,如果我浏览到/ControllerName/Details/5,我得到这个错误:
" '/'应用程序中服务器错误。"没有找到视图"details"或它的主视图,或者没有视图引擎支持搜索的位置。"
奇怪的是,如果我使用ASP。. NET脚手架来生成视图,其中的Details部分工作得很好。基本上和上面的代码是一样的。
这是我的RouteConfig.cs,如果这是相关的:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
那么为什么脚手架控制器工作良好,没有任何具体添加到routecconfig,但我的控制器细节方法不工作?
错误中应该有更多关于搜索位置的详细信息。你在控制器中设置断点并检查它是否被击中了吗?
试
return View((object)result);
不是
return View(result)
导致它调用重载视图(string viewName)
如果这不起作用,尝试像这样显式地指定viewName:
return View("ViewName", name);
另外,检查你的文件夹结构。MVC在视图文件夹下查找视图(如Index),但它们也必须在以其控制器命名的文件夹下(部分视图除外)。