Asp.net mvc asp.net mvc 3更改“;URL";从「/&引用;“到”吗;?id=”号;

Asp.net mvc asp.net mvc 3更改“;URL";从「/&引用;“到”吗;?id=”号;,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我正在使用MVC3。页面内容来自SQL数据库。当我尝试使用Javascript传递变量时,我注意到一个问题。当url显示目录/pagename时,它不起作用,但是如果url是directory?=pagename!!知道为什么以及如何将url更改为?=id吗。 以下是行动链接: <%: Html.ActionLink("Go", "CourseContent", new { id = Model.ID })%> 这是控制器: public virtual ActionResult

我正在使用MVC3。页面内容来自SQL数据库。当我尝试使用Javascript传递变量时,我注意到一个问题。当url显示目录/pagename时,它不起作用,但是如果url是directory?=pagename!!知道为什么以及如何将url更改为?=id吗。 以下是行动链接:

<%: Html.ActionLink("Go", "CourseContent", new { id = Model.ID })%>
这是控制器:

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 }
  );
}

什么不起作用?您如何使用javascript调用此url?
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 }
  );
}