C# 控制器在MVC4中不工作
我有一个名为UserController的控制器,其中只调用索引操作 未调用另一个添加为“主操作”的操作,调用actionresult/string或返回视图 我得到了这个错误 在Google Chrome上运行时 {“Message”:“未找到与请求URI匹配的HTTP资源 /用户/home.,“MessageDetail”:“未找到与 名为“主”的控制器。“} 并在Mozilla Firefox上运行 哎呀!找不到该页。试着再给它一次机会 下面 这是我的整个控制器代码:C# 控制器在MVC4中不工作,c#,.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我有一个名为UserController的控制器,其中只调用索引操作 未调用另一个添加为“主操作”的操作,调用actionresult/string或返回视图 我得到了这个错误 在Google Chrome上运行时 {“Message”:“未找到与请求URI匹配的HTTP资源 /用户/home.,“MessageDetail”:“未找到与 名为“主”的控制器。“} 并在Mozilla Firefox上运行 哎呀!找不到该页。试着再给它一次机会 下面 这是我的整个控制器代码: using Syst
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Mvc4Application1.Controllers
{
public class UserController : Controller
{
//
// GET: /User/
public ActionResult Index()
{
return View();
}
public ActionResult AddPlace()
{
return View();
}
public ActionResult UpdatePlace()
{
return View();
}
public ActionResult DeletePlace()
{
return View();
}
}
}
这是RouteConfig.cs文件
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new
{ controller = "Home", action = "Index",
id=UrlParameter.Optional }
需要考虑的事项:
- 确保您是从controller继承控制器,而不是从ApiController继承控制器
- 确保你的路线正常
- 从注释中,还要确保如果控制器不在家,则该用户是路线上的默认用户
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "User", action = "home", id = UrlParameter.Optional }
);
请注意,这将使用UserController作为默认视图,home作为默认视图,不过,我建议将home命名为Index,因为它更常见
如果不是这些,请张贴您的整个控制器,以便我们可以进一步了解它
希望我能帮忙 控制器中返回
字符串的方法将不可路由。它必须返回一个操作结果
(或它的一个派生类)
将其更改为:
public ActionResult Home()
{
return View("Hello from home");
}
然后在Views/Home文件夹中,添加一个名为Home的视图,其内容如下:
@model string
<p>@Model</p>
@模型字符串
@模型
以下是您需要交叉检查的事项
- 从控制器而不是从ApiController继承控制器
- 确保Routeconfig具有正确的Maproute
否则您需要重命名控制器[听起来很奇怪,但可能有帮助]
使用ActionResult作为返回数据类型查看我自己的问题!还有我自己的回答
您只需在routeconfig文件中添加一个额外的maproute,即可获得该控制器名称
routes.MapRoute(
name: "WhateverName" ,
url: "ProblematicControllerName/{action}/{id}" ,
defaults: new { controller = "user" , action = "anyaction" , id = UrlParameter.Optional }
);
请显示代码,重定向到哪里?您的路由代码是什么样子的?您没有家庭控制器吗?这是MVC默认的外观。UserController的url应该是/user.true,我没有看到字符串返回!如果路由指向controllerDarndest,这很可能就是问题所在,我也遇到了同样的问题,并重命名了controller,它为我分叉。有人知道为什么它不喜欢某些名字吗?我试着把它重新命名为原来的名字,但它还是坏了。