【问题标题】:Network 500 errors with mvc routing when I add multiple parameters添加多个参数时,mvc 路由出现网络 500 错误
【发布时间】:2012-09-02 22:57:13
【问题描述】:

我正在尝试为博客实现一些路由我希望使用多个参数显示 url,但是我不断收到 500 个网络错误的负载,而且当我得到它时,它似乎开始在不同的地方寻找 jquery 和图像我想要的路线。

这是路线

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
    "Events",
    "Post/{action}/{id}/{categoryName}/{blogTitle}",
    new { controller = "Post", action = "Detail", id = "", 
          categoryName = "", blogTitle = "" }
);

这里是控制器

public ActionResult Details(int id, string categoryName, string blogTitle)
{
    SitePosts posts = new SitePosts();
    Post post = posts.GetPost(id);

    ViewBag.IsAdmin = IsAdmin;
    return View(post);
}

这是我在 cshtml 剃须刀助手中使用的链接

<a href="@Href("~/Post/Details/" + post.ID + "/" + post.Category.CategoryName + "/" + post.Title)">

如果我重定向到操作,同样适用 return RedirectToAction("Details", "Post", new { id = uid, categoryName = post.Category.CategoryName, blogTitle = UrlEncoder.ToFriendlyUrl(post.Title) });

请我不知道为什么会这样 我有很多关于尝试查找 javascript 和图像的 http get 错误的屏幕打印 在 post/details/content/jquery 等处,但它不会让我发帖

【问题讨论】:

    标签: asp.net-mvc-3 routing


    【解决方案1】:

    尝试使用 Html ActionLink 帮助程序,而不是自己创建它。此外,您可以调整您的路由表并省略您传递的值,您不需要使用 = "" 语法在路由中声明这些值,只需将它们留在路由表达式中即可。

    路由表

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        "Events",
        "Post/Detail/{id}/{categoryName}/{blogTitle}",
        new { controller = "Post", action = "Detail" }
    );
    

    查看 - 创建链接

        @Html.ActionLink("DisplayText", "Detail", new{controller="Post", id = post.ID,
     categoryName=post.Category.CategoryName, blogTitle = post.Title})
    

    【讨论】:

      猜你喜欢
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      相关资源
      最近更新 更多