C# 在asp.net MVC中从url捕获参数

C# 在asp.net MVC中从url捕获参数,c#,asp.net,C#,Asp.net,大家好,我是初学者,正在从tutorial point网站学习教程 这里是链接 我遵循它的指令来创建一个控制器并从URL抓取参数,但是当我运行时,它显示了空白页,有时显示错误。 “/”应用程序中出现服务器错误。 找不到资源。 描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确 请求的URL:/employee/ 版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.7

大家好,我是初学者,正在从tutorial point网站学习教程 这里是链接

我遵循它的指令来创建一个控制器并从URL抓取参数,但是当我运行时,它显示了空白页,有时显示错误。 “/”应用程序中出现服务器错误。 找不到资源。 描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确

请求的URL:/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 }
            );

        }
    }
}

MapRoute中的控制器和操作名称区分大小写

因此,雇员和雇员不匹配。您要更改传入URL或将控制器设置调整为:

routes.MapRoute(
   "employee", "employee/{name}", new
   {
       controller = "Employee", action = "Search", name =UrlParameter.Optional }
            );

        }
    }

您必须在默认路径之前设置特殊路径

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 }
);