我在控制器中有这个:
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,我会收到此错误:
>“/'应用程序中的服务器错误。 - 找不到视图'详细信息'或其主文件,或者没有视图引擎支持搜索的位置。”
奇怪的是,如果我使用ASP.NET Scaffolding生成视图,那么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 }
);
}
}
那么为什么脚手架控制器工作正常,没有任何特定的东西添加到RouteConfig,但我的控制器Details方法不起作用?
答案 0 :(得分:2)
错误中应该有更详细的信息,说明搜索了哪些位置。你是否在控制器中放置了断点并检查它是否被击中?
尝试
return View((object)result);
而不是
return View(result)
导致其调用重载View(string viewName)
如果这不起作用,请尝试明确指定viewName:
return View("ViewName", name);
此外,请检查您的文件夹结构。 MVC在views文件夹下查找视图(如Index),但它们也必须位于以其控制器命名的文件夹下(部分视图除外)。