В моем [HttpGet] Create Action
я это:Мой ID поле получает значение, когда оно не должно быть
public ActionResult Create(int? id)
{
ViewBag.TestTypeID = new SelectList(db.codeTypes, "ID", "TestType");
OHealth oHealth = new OHealth();
oHealth.OID = Convert.ToInt32(id);
oHealth.DateEntered = DateTime.Today;
return View(oHealth);
}
Теперь OID
является внешним ключом, а не первичный ключ ID
. Как вы можете видеть, я не назначаю ID
любое значение .. только OID
. ID
автоматически добавляется в базу данных.
Вот как мой HTML делает для моего Create View для OID
и ID
:
<input data-val="true" data-val-number="The field ID must be a number." data-val-required="The ID field is required." id="ID" name="ID" type="hidden" value="2" />
<input data-val="true" data-val-number="The field OID must be a number." data-val-required="The OID field is required." id="OID" name="OID" type="hidden" value="2" />
Так что, когда я ударил создать, то ID
поле задается значение 2
, когда оно должно быть 1
, так как это будет первая запись в базе данных.
Как мое поле ID
получает значение 2
, если это не было назначено?
Сообщите мне, если потребуется больше.
Любая помощь приветствуется.
ОБНОВЛЕНИЕ
Бритва для тех полей 2:
@Html.HiddenFor(model => model.ID)
@Html.HiddenFor(model => model.OID)
@ freedomn-m см. Обновленный. –
Это из-за этого 'public ActionResult Create (int? Id)'. Прочтите секцию, чтобы дать объяснение. –
@ freedomn-m В моем классе «OHealth» у меня есть пустой конструктор. –