Ваш URL с параметрами ссылается на GET Action, верно?Если это так, добавьте имена параметров в качестве переменных в объявление этого действия.Например, скажем, мой URL, отправленный по электронной почте, был:
http://mywebsite.com/register?id=511&sl=department
Тогда мое соответствующее действие:
public ActionResult Register(int id, string sl)
{
MyModel myModel = new MyModel();
myModel.id = id;
myModel.sl = sl;
return View(myModel);
}
Чтобы сохранить их во время многоэтапного процесса, вы можете использовать либо HTML.HiddenFor () в представлении, чтобы добавить скрытое поле или сохранить в каком-либо другом месте (например, в базе данных).
Если вы не хотите добавлять их в свою модель, вы можете сделать это:
public ActionResult Register(int id, string sl)
{
ViewData["id"] = id;
ViewData["sl"] = sl;
return View();
}
А теперь в представлении есть скрытое поле для каждого.Затем в действии контроллера POST-to:
[HttpPost]
public ActionResult Register(MyModel myModel, int id, string sl)
{
// the hidden fields are now in id and sl
// ASSUMPTION: the names of "id" and "sl" don't exist in MyModel -- if they do, collision
...
return View();
}