打开浏览器就弹出“ 找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“control

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打开浏览器就弹出“ 找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“control相关的知识,希望对你有一定的参考价值。

打开浏览器就弹出“ 找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“controller/action/id”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。” 任何有联网的页面都会出现这个,谁能教教我怎么解决?

解决方法为:

在Areas下面的RegArea中做修改如下,加上一个 new string[] 后面是当前Area中的Controllers的命名空间

public override void RegisterArea(AreaRegistrationContext context)

context.MapRoute(
"Buyer_default",
"Buyer/controller/action/id",
new action = "Index", id = UrlParameter.Optional
, new string[] "Chihou.Shop.Web.Seller.Controllers"
);

经过测试后,发现问题无法那样解决,根据上面提供的思路,在Global.ascx.cs下面修改如下,
public static void RegisterRoutes(RouteCollection routes)

routes.IgnoreRoute("resource.axd/*pathInfo");

routes.MapRoute(
"Default", // 路由名称
"controller/action/id", // 带有参数的 URL
new controller = "Home", action = "Index", id = UrlParameter.Optional // 参数默认值
, new string[] "Chihou.Shop.Web.Controllers"
);

做个记录以备忘记,或者后来者使用。

    第一个Web浏览器

    出自Berners-Lee之手,这是他为NeXT计算机创建的(这个Web浏览器原来取名叫WorldWideWeb,后来改名为Nexus),并在1990年发布给CERN的人员使用。Berners-Lee和Jean-Francois Groff将WorldWideWeb移植到C,并把这个浏览器改名为libwww。

    20世纪90年代初出现了许多浏览器,包括Nicola Pellow编写的行模式浏览器(这个浏览器允许任何系统的用户都能访问Internet,从Unix到Microsoft DOS都涵盖在内),还有Samba,这是第一个面向Macintosh的浏览器。

    当时,网页浏览器被视为能够处理CERN庞大电话簿的实用工具。在与用户互动的前提下,网页浏览器根据gopher和telnet协议,允许所有用户能轻易地浏览别人所编写的网站。可是,其后在浏览器中加插图像的举动,使之成为了互联网的“杀手级应用”。

    各类浏览器

    NCSA Mosaic使互联网得以迅速发展。它最初是一个只在Unix运行的图像浏览器;很快便发展到在Apple Macintosh和Microsoft Windows亦能运行。1993年9月发表了1.0版本。NCSA中Mosaic项目的负责人Marc Andreesen辞职并建立了网景通讯公司。

    网景公司在1994年10月发布了他们的旗舰产品网景导航者。但第二年Netscape的优势就被削弱了。错失了互联网浪潮的微软在这个时候匆促的购入了Spyglass公司的技术,改成Internet Explorer,掀起了软件巨头微软和网景之间的浏览器大战。这同时加快了万维网发展。

    这场战争把网络带到了千百万普通电脑用户面前,但同时显露了互联网商业化如何妨碍统一标准的制定。微软和网景都在他们的产品中加入了许多互不相容的html扩展代码,试图以这些特点来取胜。1998年,网景公司承认其市场占有率已无法挽回,这场战争便随之而结束。微软能取胜的其中一个因素是它把浏览器与其操作系统一并出售(OEM,原始设备制造);这亦使它面对反垄断诉讼。

    网景公司以开放源代码迎战,创造了Mozilla,但此举未能挽回Netscape的市场占有率。在1998年底美国线上收购了网景公司。在发展初期,Mozilla计划为著吸引开发者而挣扎;但至2002年,它已发展成一个稳定而强大的互联网套件。Mozilla 1.0的出现被视为其里程碑。同年,衍生出Phoenix(后改名Firebird,最后又改为Firefox)。Firefox 1.0于2004年发表。及至2008年,Mozilla及其衍生产品约占20%网络交通量。

    Opera是一个灵巧的浏览器。它发布于1996年。2013年它在手持电脑上十分流行。它在个人电脑网络浏览器市场上的占有率则稍微较小。

    Lynx浏览器仍然是Linux市场上十分流行的浏览器。它是全文字模式的浏览器,视觉上并不讨好。还有一些有着进阶功能的同类型浏览器,例如Links和它的分支ELinks。

    Konqueror是一个由KDE开发的浏览器,KDE开发人员在开发KDE2时意识到一个良好的桌面环境必须搭配一个良好的网络浏览器及档案管理员,便投入不少力量开发了Konqueror,这个浏览器使用了自家开发的排版引擎KHTML,由于Konqueror是属于KDE的一员,并只常见于Unix-like下的KDE桌面环境,所以Konqueror并未普及;纵然Macintosh的浏览器市场亦同样被Internet Explorer和Firefox占据,但2013年以后有可能会是苹果电脑自行推出的Safari的世界。Safari是基于Konqueror这个开放源代码浏览器的KHTML排版引擎而制成的。Safari是Mac OS X的默认浏览器。

    微软浏览器的发展

    2003年,微软宣布不会再推出的独立的Internet Explorer,但会变成视窗平台的一部分;同时也不会再推出任何Macintosh版本的Internet Explorer。不过,于2005年初,微软却改变了计划,并宣布将会为Windows XP、Windows Server 2003和Windows Vista操作系统推出Internet Explorer 7。

    2011年3月15日,微软推出了Internet Explorer9的正式版,值得一提的是,Internet Explorer9不再支持Windows XP。微软官方表示,IE9不支持WindowsXP是因为其硬件加速功能在WindowsXP系统上无法正常运行。而windows7要求电脑内存至少在1G以上。对此,微软大中华区开发工具及平台事业部总经理谢恩伟表示,“建议这部分用户使用IE8。”

    2011年4月11日,Internet Explorer9才推出1个月,微软又推出了Internet Explorer10的首个预览版本。Internet Explorer9不支持XP让不少用户感到愤怒,而如今细心的用户在Internet Explorer10平台开发版的最终用户许可协议中看到,Internet Explorer10连Windows Vista系统也不打算支持了。据协议描述,Internet Explorer10将只支持Windows 7 、Windows 8 两个版本,不过好在Windows Vista从开始到结束都是一个悲情故事,Internet Explorer10不支持Windows Vista对于这么点用户数量而言实在是很难引起反弹的。

参考技术A 当在MVC中添加多个Areas的时候,如果Area下面的控制器的类名和控制器和全局的某个控制的类名和控制器名称相同的时候,打开全局的url的时候,会出现类似的情况。提示如下:

找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“controller/action/id”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。

这个情况出现后,网络上搜索能找到的解决方法为:在Areas下面的RegArea中做修改如下,加上一个 new string[] 后面是当前Area中的Controllers的命名空间

 

public override void RegisterArea(AreaRegistrationContext context)

context.MapRoute(
"Buyer_default",
"Buyer/controller/action/id",
new action = "Index", id = UrlParameter.Optional
, new string[] "Chihou.Shop.Web.Seller.Controllers"
);
经过测试后,发现问题无法那样解决,根据上面提供的思路,在Global.ascx.cs下面修改如下,
public static void RegisterRoutes(RouteCollection routes)

routes.IgnoreRoute("resource.axd/*pathInfo");

routes.MapRoute(
"Default", // 路由名称
"controller/action/id", // 带有参数的 URL
new controller = "Home", action = "Index", id = UrlParameter.Optional // 参数默认值
, new string[] "Chihou.Shop.Web.Controllers"
);



做个记录以备忘记,或者后来者使用。追答

你是想用正常的流懒器吗

参考技术B 这样的情况应当是网站问题,建议换别的网站访问,这样就可以正常。

以上是关于打开浏览器就弹出“ 找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“control的主要内容,如果未能解决你的问题,请参考以下文章

找到多个与名为“Home”的控制器匹配的类型

找到多个与名为“Home”的控制器匹配的类型

找到多个与名为“Home”的控制器匹配的类型

找到多个与名为“Home”的控制器匹配的类型。解决方法

找到多个与名为“Home”的控制器匹配的类型

System.InvalidOperationException: 找到多个与名为“Home”的控制器匹配的类型。