На самом деле вы можете переименовать свойство JournalEntryId
в вашей JournalEntry
модели представления в Id
, и тогда связыватель модели по умолчанию автоматически заполнит его для вас, чтобы вам не приходилось писать следующую строку:
journalentry.JournalEntryId = id;
и ваш первый фрагмент кода будет работать, потому что свойство Id будет заполнено значением из маршрута.
Или если по какой-то причине вы не можете переименовать свойство в вашей модели представления (на самом деле я знаю причину => вы вообще не используете никаких моделей представления, но передаете свои доменные сущности непосредственно в представление, которое является плохим, но подверженным на другой вопрос), вы можете использовать скрытое поле в вашей форме:
@Html.HiddenFor(model => model.JournalEntryId)
или измените объявление Html.BeginForm
, включив параметр в качестве аргумента строки запроса:
@Html.BeginForm("Edit", "SomeController", new { JournalEntryId = Model.JournalEntryId }, FormMethod.Post)
{
...
}