此应用程序是vs2012模板的开箱即用的mvc4互联网应用程序。我为网址模式添加了新路由 h sports/{name}
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Sports",
"sports/{name}",
new { controller="sports", action="Find",name=UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
控制器主页是
public class sportsController : Controller
{
//
// GET: /sports/
public ActionResult Find(string strName)
{
return Content("Sport looking for is: "+ strName);
}
}
如果我请求默认主页 http:/ localhost / sports ,页面将工作并显示文本" Sport正在寻找" 。但是如果将参数传递给 url ,例如"tennis"
,则该参数不会传递给操作方法Find()
。
here is the video of what happening,我想知道为什么这不会传递参数以及如何解决这个问题?
感谢
答案 0 :(得分:3)
您的路由定义参数name = UrlParameter.Optional
,但您的调用方法有一个参数string strName
(它们不匹配)。将方法签名更改为
public ActionResult Find(string name)