сегодня у меня есть интересное наблюдение, которое мне нужно объяснить.У меня есть мой Person
класс, который описан выше:
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
теперь в моем приложении MVC2 у меня есть PersonController со следующим методом редактирования:
public ActionResult Edit(int id)
{
var permission = _service.GetPerson(id);
return View(person);
}
[HttpPost]
public ActionResult Edit(Person person)
{
if (ModelState.IsValid)
{
_service.UpdatePerson(permission);
return RedirectToAction("Index");
}
return View(person);
}
Сейчас наВ моем представлении Edit.aspx
у меня есть форма, которая содержит только FirstName и LastName, но что удивляет меня, когда сообщение выполняется в моем контроллере, у объекта Person
правильно установлен Id (который не был частью формы).
Теперь я предполагаю, что оно взято из значения маршрута параметра id, который отправляется в мой адрес действия, но сохранен ли он?Я имею в виду .. Хорошо, что мне не нужно ставить скрытое поле для идентификатора, но есть ли опасность, вызванная смешиванием параметров get и post в mvc2?
И еще одна проблема.Что делать, если я поставлю скрытый для id.Затем он будет отправлен в обе стороны (получить и отправить), так что ... какой идентификатор будет использоваться?