Передача и получение значений routedictionary в mvc2 - PullRequest
1 голос
/ 18 августа 2010

У меня есть ссылка в моем действии, подобная этой

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

, теперь в моем контроллере newItem в его действии index, как мне извлечь этот 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 Ответ

1 голос
/ 18 августа 2010

Вы можете сделать это намного более просто:

public ActionResult Index(int itemId)

Мало того, что это 1/10 кода, он гораздо легче тестируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...