Asp.net mvc 3 Microsoft是否更改了在ASP.NET MVC 3中将字符串作为参数传递的方式?
我有一个简单的问题。以前,当我只想用一个参数调用控制器方法时,我可以简单地调用Asp.net mvc 3 Microsoft是否更改了在ASP.NET MVC 3中将字符串作为参数传递的方式?,asp.net-mvc-3,Asp.net Mvc 3,我有一个简单的问题。以前,当我只想用一个参数调用控制器方法时,我可以简单地调用/ControllerName/method/parameter,不管这个参数是什么类型。现在,我对一个整数值做了同样的事情,没有任何问题,但是对一个字符串它不起作用。是我疯了还是微软真的改变了这一点?您在Global.aspx.cs中找到的默认路径仍然是: routes.MapRoute( "Default", // R
/ControllerName/method/parameter
,不管这个参数是什么类型。现在,我对一个整数值做了同样的事情,没有任何问题,但是对一个字符串它不起作用。是我疯了还是微软真的改变了这一点?您在Global.aspx.cs中找到的默认路径仍然是:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
因此,您的“参数”是上面示例中的
{id}
,可能是一个id通常是的数字。了解你的路线,它们很有趣!链接:我在想象你对int
s起作用的动作如下:
公共行动结果索引(int-id)
如果希望接受字符串参数而不是整数,并将其作为(默认)路由的一部分,则还需要在方法签名中将其命名为id
,如下所示:
公共操作结果索引(字符串id)
如果您有一个签名如下的操作:
public ActionResult Post(字符串slug)
然后,使用默认路由slug,只有当您使用键slug
具有querystring(get
)或form(post
)值时,slug才会有一个值。与上述操作匹配并填充slug
参数的路由(假设它是BlogController
控制器的方法)将是:
routes.MapRoute(
"BlogPost",
"post/{slug}",
new { controller = "Blog", action = "Post", slug = "" }
);
你能提供一些代码吗?主要是路线设置和控制器操作。