如何解决asp.net mvc 3将“ URL”从“ /”更改为“?id =”
| 我正在使用MVC3。页面内容来自SQL数据库。当我尝试使用Javascript传递变量时,我注意到一个问题。当url显示目录/页面名称时不起作用,但是如果url是directory?= pagename则它起作用!任何想法,为什么以及如何将URL更改为?= id。 这是动作链接:<%: Html.ActionLink(\"Go\",\"CourseContent\",new { id = Model.ID })%>
全局路由
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 }
);
}
这是控制器:
public virtual ActionResult CourseContent(long id)
{
Course requestedCourse = _courseSvc.GetCourse(id);
if (requestedCourse == null)
return new HttpNotFoundResult();
string loggedInUserName = HttpContext.User.Identity.Name;
string loggedInRoleName = _membershipSvc.GetRoleForUser(loggedInUserName);
if (_courseSvc.DetermineIfTheUserCanAttendCourse(id,Request.IsAuthenticated,loggedInUserName,loggedInRoleName))
return View(requestedCourse);
return RedirectToAction(\"Index\");
}
提前致谢
解决方法
它应该与/ controller / action / id一起使用,但是您始终可以执行以下操作:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(\"{resource}.axd/{*pathInfo}\");
routes.MapRoute(
\"Default\",// Route name
\"{controller}/{action}?id={id}\",// URL with parameters
new { controller = \"Home\",action = \"Index\",id = UrlParameter.Optional }
);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。