Как передать число в маршруте через представление моему контроллеру
Я называю маршрут как
(localhost) / MyThing / Create / 3
То, что я хочу сделать, это использовать этот 3 параметр и установить его в объекте MyThing, когда я вставлю его в базу данных.
Я создал представление Edit, строго привязанное к моей вещи.Поэтому по умолчанию представление запрашивает у пользователя это значение (но я не хочу этого делать).
У меня есть эти методы в моем контроллере
public ActionResult Create()
{
var thing= new MyThing();
return View(thing);
}
и
[HttpPost]
public ActionResult Create(MyThing newThing, int thingID)
{
if (ModelState.IsValid)
{
try
{
newThing.ThingID= thingID;
DB.MyThing .AddObject(newThing);
DB.SaveChanges();
return RedirectToAction("Index");
}
catch (Exception ex)
{
ModelState.AddModelError("", "Error creating new Thing");
}
}
return View(newThing);
}
Я пытался закомментировать код thingID в представлении, но я получаю ошибку, что он не может быть нулевым.Я также попытался изменить первый метод здесь, чтобы взять параметр и установить его при обновлении объекта, но маршрут сработал.
Если я использую код выше с представлением по умолчанию, число редактируемое и ноль наэкран.И когда вы возвращаетесь к контроллеру, параметр сбрасывается на 0.
Что было бы идеально для представления, чтобы получить это значение (3 в моем примере) и показать его, но только для чтения.Как мне это сделать?
Я использую ASP.net 2, если это имеет значение.