0

我在尝试将 2 个数据库值绑定到 URL 时遇到问题,我的 global.asax 文件正确为

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}/{stitle}", // URL with parameters
            new { controller = "article", action = "Index", id = UrlParameter.Optional, stitle= UrlParameter.Optional} // Parameter defaults

        );

我遇到的问题是我的控制器由于某种原因我无法在这里返回第二个值是我的控制器代码

public ActionResult Detail(int id,string stitle)
    {

        Article article = db.Articles.Find(id);  
      stitle = (from s in db.Articles where id == s.ArticleID select s.stitle).FirstOrDefault();

        return View(article);
    }

是否有某种方式可以返回stitle或将其包含在文章中,因为stitle是数据库中的字符串值。

4

1 回答 1

0

只有路由的最后一个参数可以是可选的。因此,在您的情况下,id参数不再是可选的:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}/{stitle}",
    new { controller = "article", action = "Index", stitle = UrlParameter.Optional }
);

然后确保您正在生成指向此操作的正确链接:

@Html.ActionLink("click me", "index", "article", new { id = "123", stitle = "some-title" }, null)

生成的 url 应该是这样的:

href="/article/index/123/some-title"
于 2012-08-28T16:24:07.673 回答