У меня есть бритва, где я редактирую свои данные.
Классы, которые у меня есть, выглядят так:
public class A
{
public string Value1 { get; set; }
public int Value2 { get; set; }
public A()
{
Value1 = "First";
Value2 = 2;
}
}
public class B : A
{
public int Value3 { get; set; }
public new CustomClass Value1 { get; set; }
public B()
{
Value3 = 3;
Value2 = new CustomClass();
}
}
теперь, когда я звоню своему Razor View
, я вызываю его с помощью это:
public IActionResult Edit()
{
return View(new B());
}
Внутри моего cshtml
кода я настроил его так:
@using (Html.BeginForm("Apply", "MyController", FormMethod.Post))
{
@Html.HiddenFor(x => x.Value1);
<label>Change value 3</label>
@Html.EditorFor(x => x.Value3);
<button class="button1">Apply!</button>
}
Теперь по какой-то причине, когда я применяю изменения, они применяются, но с ошибкой * Параметр 1014 *.
Я проверил ввод кода и увидел, что Value1
имеет хорошее значение, проверил код /MyController/Apply
и имеет значение null.
Когда я установил точку останова внутри cshtml
чтобы увидеть, какое значение имеет @HiddenFor(x => x.Value1)
я увидел что-то странное для меня, и именно это (свойство тега на изображении представлено как Value2
в приведенном выше коде):

Итак, по какой-то причине у бритвы почему-то есть оба свойства, но одно с null
(которое он получает изнутри) и одно с хорошими значениями.
Что я могу сделать?