以下是控制器代码:
public class HomeController : Controller
{
//
// GET: /Home/
public string Index(string name)
{
return "Welcome to MVC_Demo"+name;
}
}
及以下是 Global.asax.cs 代码:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
当我运行应用程序并浏览(http://localhost/MVC_Demo/home/index/pradeep)时,它只显示, "欢迎来到MVC_Demo"作为输出,而不是"欢迎来到MVC_Demo Pradeep"即参数名称" Pradeep"没有显示出来。
考虑到我只是初学者,任何帮助都会受到高度赞赏。
答案 0 :(得分:2)
根据您的路线说明,默认参数名为id
。因此,要么将默认参数名称更改为name
,就像这样
routes.MapRoute(
"Default",
"{controller}/{action}/{name}",
new { controller = "Home", action = "Index", name = UrlParameter.Optional }
);
或者您可以将参数名称更改为id
并匹配路线。
public string Index(string id)
{
return $"Welcome to MVC_Demo {id}";
}
另一个解决方案是将parametername明确指定为QueryString参数: