#c# #asp.net-mvc
Вопрос:
В ASP.NET Проект MVC, у меня очень сложная модель, часть класса ниже (класс БОЛЬШОЙ, я его сильно упростил, оставив только одно свойство):
[Serializable]
public class SimulazioneModelComplete : SimulazioneModel
{
public string Title { get; set; }
}
Я добавляю некоторые свойства в форму, как это:
@using (Html.BeginForm("CreaEsito", "Simulazioni", FormMethod.Post, new { id = "CreaEsito", name = "CreaEsito", enctype = "multipart/form-data" }))
{
Title:
@Html.TextBoxFor(m => m.Title)
}
Я поставил простую кнопку отправки
<input type="submit" value="SUBMIT" />
И в контроллере у меня есть метод, ожидающий SimulazioneModelComplete
модель
[HttpPost]
public ActionResult CreaEsito(SimulazioneModelComplete model)
{
}
но когда я нажимаю «Отправить», model
параметр всегда NULL
.
Я не вижу пустых некоторых свойств, вся модель пуста. Я не размещаю полный код класса и формы, потому что они БОЛЬШИЕ и были бы нечитабельны.
Кто-нибудь может предложить причины для NULL
модели?
Комментарии:
1. Почему вы используете
[Serializable]
?2. Пожалуйста, опубликуйте свой визуализированный HTML
<form>
. Также загляните на вкладку «Сетевая активность» инструментов разработчика вашего браузера. Наконец, есть ли у вас какое-либо пользовательское промежуточное программное обеспечение?3. Как вы это проверили
model
null
? Есть ли у вас точка останова отладчика, установленная в вашем действии контроллера?
Ответ №1:
Я не знаю, зачем вам это нужно, но так как вы используете enctype = «составные/данные формы», вам нужно добавить атрибут в свой параметр действия
[HttpPost]
public ActionResult CreaEsito([FromForm] SimulazioneModelComplete model)
{
}
Иногда в net core [FromBody] тоже может работать.
И я не знаю, зачем вам нужны удостоверение личности и имя, может быть, это было бы лучше
@using (Html.BeginForm("CreaEsito", "Simulazioni", FormMethod.Post,
new { enctype = "multipart/form-data" }))
Ответ №2:
Я нашел проблему … это было в модели. Модель включала ДВА свойства с одинаковым ИМЕНЕМ, но разным типом.
Что-то в процессе привязки становится безумным, и вся модель становится пустой.
Комментарии:
1. «Модель включала ДВА свойства с одинаковым ИМЕНЕМ, но разного типа». — это невозможно, компилятор будет жаловаться. Как это случилось?
2. Я не знаю КАК, я знаю, что нашел два объекта с одинаковым именем и разным типом.
3. Пожалуйста, поделитесь скриншотом того, что вы видите.