嗨,我是初学者,正在从教学点网站上学习教程 这是链接。
https://www.tutorialspoint.com/asp.net_mvc/asp.net_mvc_controllers.htm 我正在按照其指令创建控制器并从url捕获参数,但是它有时会显示问题,当我运行时会显示空白页面,有时会显示错误。
“ /”应用程序中的服务器错误。 无法找到该资源。 说明:HTTP404。您正在寻找的资源(或其依赖项之一)可能已被删除,名称更改或暂时不可用。请查看以下网址,并确保其拼写正确。
请求的网址:/ employee /
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.7.3056.0。
这是我的控制器代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVCControllerDemo.Controllers
{
public class EmployeeController : Controller
{
// GET: Employee
public ActionResult Search(string name)
{
var input = Server.HtmlEncode(name);
return Content(input);
}
}
}
这是routeConfig.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace WebApplication1
{
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 = "Welcome", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"Employee", "Employee/{name}", new
{
controller = "Employee", action = "Search", name =UrlParameter.Optional }
);
}
}
}
答案 0 :(得分:0)
MapRoute中的Controller和Action名称区分大小写。
因此,雇员和雇员不匹配。您想要更改传入的URL或将控制器设置调整为:
routes.MapRoute(
"employee", "employee/{name}", new
{
controller = "Employee", action = "Search", name =UrlParameter.Optional }
);
}
}
答案 1 :(得分:0)
您必须在默认路由之前设置特殊路由。
routes.MapRoute(
name: "Employee",
url: "Employee/{name}",
defaults: new { controller = "Employee", action = "Search", name = UrlParameter.Optional });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Welcome", action = "Index", id = UrlParameter.Optional }
);