2012-08-28 51 views
0

我有一个问题,试图绑定2个数据库值的URL我的Global.asax文件是正确的,因为MVC 3路由绑定问题

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是一个字符串值数据库。

回答

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" 
+0

非常感谢你解决它。 – user1591668