对"Home"的请求已找到以下匹配的控制器:Test_Login.Controllers.HomeController BPF。控制器.主页控制器



请帮忙,我收到这样的错误

"/"应用程序中的服务器错误。发现多个类型与名为"Home"的控制器匹配。如果为此请求提供服务的路由('{controller}/{action}/{id}')未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用采用 'namespaces' 参数的 'MapRoute' 方法的重载来注册此路由。

对"Home"的请求已找到以下匹配的控制器:

User_Login_MVC.Controllers.HomeController
BPF.Controllers.HomeController

说明:执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。

异常详细信息System.InvalidOperationException:找到与名为"Home"的控制器匹配的多个类型。如果为此请求提供服务的路由('{controller}/{action}/{id}')未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用采用"命名空间"参数的"MapRoute"方法的重载来注册此路由。

对"主页"的请求已找到以下匹配的控制器:

User_Login_MVC.Controllers.HomeController
BPF.Controllers.HomeController

源错误:

在执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

堆栈跟踪:

[无效操作异常:发现多个类型与名为"Home"的控制器匹配。如果为此请求提供服务的路由('{controller}/{action}/{id}')未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用采用 'namespaces' 参数的 'MapRoute' 方法的重载来注册此路由。

对"Home"的请求已找到以下匹配的控制器:

User_Login_MVC.Controllers.HomeController
BPF.Controllers.HomeController]

System.Web.Mvc.DefaultControllerFactory.GetControllerTypeWithinNamespaces(RouteBase route, String controllerName, HashSet'1 namespaces( +159 System.Web.Mvc.DefaultControllerFactory.GetControllerType(RequestContext requestContext, String controllerName( +544 System.Web.Mvc.DefaultControllerFactory.System.Web.Mvc.IControllerFactory.GetControllerSessionBehavior(RequestContext requestContext, String controllerName( +53 System.Web.Mvc.MvcRouteHandler.GetSessionStateBehavior(RequestContext requestContext( +132 System.Web.Mvc.MvcRouteHandler.GetHttpHandler(RequestContext requestContext( +33 System.Web.Mvc.MvcRouteHandler.System.Web.Routing.IRouteHandler.GetHttpHandler(RequestContext requestContext( +10 System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context( +9966527 System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e( +82 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute(( +141 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step( +48 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completeSyncally( +71

这是我的代码家庭控制器.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
namespace BPF.Controllers
{
public class HomeController : Controller
{
[AllowAnonymous]
public ActionResult Index()
{
return View();
}
[Authorize]
public ActionResult Profile()
{
return View();
}
[HttpPost]
[AllowAnonymous]
public ActionResult Index(User user)
{
UsersEntities usersEntities = new UsersEntities();
int? userId = usersEntities.ValidateUser(user.Username, user.Password).FirstOrDefault();
string message = string.Empty;
switch (userId.Value)
{
case -1:
message = "Username and/or password is incorrect.";
break;
case -2:
message = "Account has not been activated.";
break;
default:
FormsAuthentication.SetAuthCookie(user.Username, user.RememberMe);
return RedirectToAction("Profile");
}
ViewBag.Message = message;
return View(user);
}
[HttpPost]
[Authorize]
public ActionResult Logout()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index");
}
}
}

这是我的代码路由配置.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace BPF
{
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 }
//namespaces: new[] { "RecreationalServicesTicketingSystem.Controllers" }
);
}
}
}

不幸的是,MVC 无法支持两个同名的操作......甚至 具有不同的签名。唯一的例外是当 操作使用不同的 HTTP VERB 属性进行修饰,例如 – for 示例 – [HttpGet] 表示前者,[HttpPost] 表示后者:

和你的第一种方法,可能有默认动词"HttpPost">

最新更新