Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Pro ASP.net MVC框架示例代码不起作用_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# Pro ASP.net MVC框架示例代码不起作用

C# Pro ASP.net MVC框架示例代码不起作用,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,这是史蒂文·桑德森的一本好书 我试着按照第4章的内容,在我的mvc代码上设置IOC,这是本书的代码示例,但它不起作用 我按照代码从第97页到第101页,在那里我设置了控制反转并运行代码,但是我得到了以下错误 尝试搜索以下文件时会打开一个对话框: c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\Windsor\WindsorContainer.cs 以下代码行中的controllertype似乎为空: protecte

这是史蒂文·桑德森的一本好书

我试着按照第4章的内容,在我的mvc代码上设置IOC,这是本书的代码示例,但它不起作用

我按照代码从第97页到第101页,在那里我设置了控制反转并运行代码,但是我得到了以下错误

尝试搜索以下文件时会打开一个对话框:

c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\Windsor\WindsorContainer.cs

以下代码行中的controllertype似乎为空:

protected override IController GetControllerInstance(
    System.Web.Routing.RequestContext requestContext, 
    Type controllerType)
{
    return (IController)container.Resolve(controllerType);
}
异常发生在上面的返回语句中,该语句表示“{”值不能为null。\r\n参数名称:服务“}”

这恰好是在温莎康纳工厂

路线如下:

public class MvcApplication : System.Web.HttpApplication
{
 public static void RegisterRoutes(RouteCollection routes)
 {
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Products", action = "List", id = ""} // Parameter defaults
    );
 }

 protected void Application_Start()
 {
    RegisterRoutes(RouteTable.Routes);
    ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory());
 }
}
请帮忙


谢谢..

您可以尝试调试路由


您可以尝试调试路由


您的方法可能正在为应用程序未提供服务的请求调用。例如favicon.ico

确保controllerType不为null。如果是,则返回null并绕过您添加的代码


不同类型的浏览器会根据缓存方式对站点发出不同的“额外”请求。此外,如果您使用IIS vs Visual Studio Dev Server托管站点,则这些服务器可能会在请求到达您的服务器之前捕获该请求(例如,IIS将服务器一个.jpg文件,而不必释放到您的控制器,但vs Dev Server可能不会)

您的应用程序可能会为未提供服务的请求调用您的方法。例如favicon.ico

确保controllerType不为null。如果是,则返回null并绕过您添加的代码


不同类型的浏览器会根据缓存方式对站点发出不同的“额外”请求。此外,如果您使用IIS vs Visual Studio Dev Server托管站点,则这些服务器可能会在请求到达您的服务器之前捕获该请求(例如,IIS将服务器一个.jpg文件,而不必释放到您的控制器,但vs Dev Server可能不会)

到目前为止,我发现以下链接解决了相同的问题。我在这里复制它们供我自己参考


到目前为止,我发现以下链接解决了同样的问题。我在这里复制它们供我自己参考


首先,我认为让相对链接比绝对链接更好


第二,检查你的浏览器。我没有看到你的代码有错误。也许不同的浏览器会让事情变得更糟。此外,如果您使用IIS vs Visual Studio Dev Server托管站点,则这些服务器可能会捕获请求:首先,我认为让相对链接比绝对链接更好


第二,检查你的浏览器。我没有看到你的代码有错误。也许不同的浏览器会让事情变得更糟。此外,如果您使用IIS vs Visual Studio Dev Server托管站点,则这些服务器可能会捕获请求:D

听起来路由引擎没有为请求的资源找到控制器。url是什么?路由看起来是什么样子?刚刚添加了路由信息,请求的url是什么?我建议fiddler来确定这一点。请求的url可能不是您所期望的,或者您可能不知道从浏览器请求的内容,例如浏览器自动请求的favicon图标。听起来路由引擎没有为请求的资源找到控制器。url是什么?路由看起来是什么样子?刚刚添加了路由信息,请求的url是什么?我建议fiddler来确定这一点。请求的url可能不是您所期望的,或者您可能不知道从浏览器请求的内容,例如浏览器自动请求的favicon图标。