Как извлечь из GET-запроса "addLine" параметр pid? Из RouteData "id" извлекается нормально, а "pid" не видит. Как можно решить этот вопрос? И рационально ли использование RouteData?
[HttpGet]
public ActionResult addLine(int id, int pid)
{
OrgForm newline = new OrgForm();
TempData["curPer"] = pid; // для ссылки "Назад" в текущий период
TempData["curFrm"] = id; // для ссылки "Отмена"
return PartialView("partAddInOrgForm", newline);
}
[HttpPost]
public ActionResult addLine(OrgForm lineAdd)
{
int cfrm = Convert.ToInt32(RouteData.GetRequiredString("id"));
Form frm = db.Forms.Where(f => f.formID == cfrm).First();
lineAdd.Form = frm;
//При извлечении второго параметра возникает ошибка
//The RouteData must contain an item named 'pid' with a non-empty string value.
int cper = Convert.ToInt32(RouteData.GetRequiredString("pid"));
Period per = db.Periods.Where(p => p.perID == cper).First();
lineAdd.Period= per;
db.AddToOrgForms(lineAdd);
db.SaveChanges();
List<OrgForm> orgFrm = (from of in db.OrgForms where of.perID == cper && of.formID == cfrm orderby of.lineCod select of).ToList();
return PartialView("partOrgForms", orgFrm);
}
P.S. В ASP.NET и MVC опыта почти нету.
Благодарю, все заработало! Действительно pid не передавался на сервер, исправил, теперь работает в обоих случаях.