在mvc2中传递和接收routedictionary值

时间:2010-08-18 17:28:03

标签: asp.net-mvc asp.net-mvc-2 dictionary routes

我的动作中有这样的链接

<%: Html.ActionLink("View Data","Index","MyItem", new {itemId=Model.itemId}, null)%>

现在在我的newItem控制器中它的索引动作如何检索这个itemId,到目前为止我已经尝试过了 此

public ActionResult Index()
        {
            RouteData rd = this.RouteData;
            var list = from p in rd.DataTokens.Where(p => p.Key == "itemId") select p;
            int? id = null;
            if (list.Count() > 0)
                id = Convert.ToInt32(list.Single().Value);
            if (id.HasValue)
            {

                return View(from a in _Service.List().Where(a => a.ApplicantId == id.Value) select a);
            }
            else
                return View(NORECORDVIEW,);


        }

还有这个

HttpRequestBase rd = this.Request;
            var list = from p in rd.QueryString.AllKeys.Where(p => p. == "itemId") select p;
            int? id = null;
            if (list.Count() > 0)
                id = Convert.ToInt32(list.Single().Value);
            if (id.HasValue)
            {

                return View(from a in Service.List().Where(a => a.ApplicantId == id.Value) select a);
            }
            else
                return View(NORECORDVIEW);

然而,这些都没有返回正确的值。

在mvc1中,我们可以直接处理,但你如何在mvc2中这样做呢。

1 个答案:

答案 0 :(得分:1)

您可以更轻松地执行更多

public ActionResult Index(int itemId)

这不仅是代码的十分之一,而且更容易测试。