Asp.net mvc ASP.Net MVC路由未将参数传递给控制器

Asp.net mvc ASP.Net MVC路由未将参数传递给控制器,asp.net-mvc,routing,Asp.net Mvc,Routing,我正在努力学习MVC并有一个艰难的开始 routes.MapRoute( "Test", "Test/{stringInput}", new { controller = "Test", action = "TestMethod", stringInput = "" } ); 不将stringInput传递给控制器中的方法TestMethod。它是空的 不确定我遗漏了什么,它看起来非常简单和直接。此路由放置在默认路由之上。您确定该路由就是正在使用的路由

我正在努力学习MVC并有一个艰难的开始

routes.MapRoute(
       "Test",
       "Test/{stringInput}",
       new { controller = "Test", action = "TestMethod", stringInput = "" }
);
不将
stringInput
传递给控制器中的方法
TestMethod
。它是空的


不确定我遗漏了什么,它看起来非常简单和直接。此路由放置在默认路由之上。

您确定该路由就是正在使用的路由吗?尝试将其移动到路线列表的顶部以确保。

确保控制器设置正确。它应该在文件夹中

Controllers/TestController.cs 控制器/TestController.cs 控制器内部应该是

public ActionResult TestMethod( string stringInput ) { return View(); } /Test/TestMethod/MyStringInput 公共ActionResult测试方法(字符串stringInput) { 返回视图(); } 它使用约定,因此在路由中设置的命名需要与控制器的文件、方法和参数相匹配

要获取此链接的url应为

public ActionResult TestMethod( string stringInput ) { return View(); } /Test/TestMethod/MyStringInput /测试/测试方法/MyStringInput
“MyStringInput”将是变量stringInput的值。

重写控制器的执行方法,然后在其中放置断点,以便查看请求上下文。其中一个属性是传入的键/值对。确保stringInput的键具有正确的值

是的,我在调试器中跟踪了它。我一直跟踪到控制器的执行。路由设置正确,只是没有出于任何原因将变量stringInput传递给控制器。谢谢,这极大地帮助我发现我在控制器方法的签名中没有使用相同的参数名,这就是问题所在。。。