views:

39

answers:

1

I have a link in my action like this

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

now in my newItem controller in its index action how do I retrieve this itemId, so far I have tried this

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


        }

and also this

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

however none of this return the correct value.

In mvc1 we could easily handle that directly but how do you do this in mvc2 please.

+1  A: 

You can do this much more easily:

public ActionResult Index(int itemId)

Not only is this 1/10th the code, it's far more easily tested.

Craig Stuntz
Ofcourse I am aware of that, however I am looking for the other stuff.