У меня есть функция со следующими определениями: первое — значение по умолчанию, второе — POST:
public IActionResult TenantTBMapping(int tenantId)
[HttpPost]
public IActionResult TenantTBMapping(TenantTBMappingViewModel model)
Модель определяется следующим образом:
public class TenantTBMappingViewModel
{
public int TenantId { get; set; }
public List Details { get; set; }
public List? ToNames { get; set; }
public List? Inputs { get; set; }
public List? MappingTables { get; set; }
}
И у меня есть стандартный HiddenFor в форме страницы:
@using (Html.BeginForm("TenantTBMapping", "Settings", FormMethod.Post))
{
@Html.HiddenFor(model => model.TenantId);
Насколько я могу судить, все это нормально и выглядит как те же страницы, которые я создавал сотни раз. Но по какой-то причине свойство TenantId не привязывается и всегда выдает 0. Если я извлеку значение из формы напрямую с помощью var test = Request.Form["TenantId"];, оно даже выдаст правильное значение. значение, так что это что-то с привязкой модели.
Единственное, что я могу предположить, это то, что структура формы каким-то образом портит привязку TenantId. Как видите, модель содержит несколько полей списка, хотя из формы возвращается только одно поле — «Подробности». У меня есть поля редактирования для каждого свойства каждой записи в Details (т. е. Model.Details.MappingConfigId), а Details и их поля привязываются правильно.
Это использует ASP .NET 8.
РЕДАКТИРОВАНИЕ: я попытался удалить все из формы, кроме скрытого поля и правильно привязанного значения, так что это определенно что-то со структурой формы. Публиковать на SO немного сложно, но я постараюсь привести пример.
У меня есть компонент, который принимает список класса под названием EditConfiguration, и именно он генерирует мои редактируемые поля. Опять же, сами поля работают нормально, они просто каким-то образом мешают привязке TenantId. Я могу опубликовать более подробную информацию об этом компоненте/классе, если это поможет.
@Html.HiddenFor(model => model.TenantId);
@for (int i = 0; i < Model.Details.Count; i++)
{
MappingConfigDetail detail = Model.Details;
string prefix = "Model.Details[" + i.ToString() + "].";
@Model.ToNames
@await Component.InvokeAsync("Edit", new { config = new List() {
new EditConfiguration() {/*params for my EditConfiguration class*/ },
Подробнее здесь: https://stackoverflow.com/questions/793 ... it-a-value
Свойство модели C# MVC имеет значение 0, хотя форма дает ему значение. ⇐ C#
Место общения программистов C#
1736979391
Anonymous
У меня есть функция со следующими определениями: первое — значение по умолчанию, второе — POST:
public IActionResult TenantTBMapping(int tenantId)
[HttpPost]
public IActionResult TenantTBMapping(TenantTBMappingViewModel model)
Модель определяется следующим образом:
public class TenantTBMappingViewModel
{
public int TenantId { get; set; }
public List Details { get; set; }
public List? ToNames { get; set; }
public List? Inputs { get; set; }
public List? MappingTables { get; set; }
}
И у меня есть стандартный HiddenFor в форме страницы:
@using (Html.BeginForm("TenantTBMapping", "Settings", FormMethod.Post))
{
@Html.HiddenFor(model => model.TenantId);
Насколько я могу судить, все это нормально и выглядит как те же страницы, которые я создавал сотни раз. Но по какой-то причине свойство TenantId не привязывается и всегда выдает 0. Если я извлеку значение из формы напрямую с помощью var test = Request.Form["TenantId"];, оно даже выдаст правильное значение. значение, так что это что-то с привязкой модели.
Единственное, что я могу предположить, это то, что структура формы каким-то образом портит привязку TenantId. Как видите, модель содержит несколько полей списка, хотя из формы возвращается только одно поле — «Подробности». У меня есть поля редактирования для каждого свойства каждой записи в Details (т. е. Model.Details[i].MappingConfigId), а Details и их поля привязываются правильно.
Это использует ASP .NET 8.
РЕДАКТИРОВАНИЕ: я попытался удалить все из формы, кроме скрытого поля и правильно привязанного значения, так что это определенно что-то со структурой формы. Публиковать на SO немного сложно, но я постараюсь привести пример.
У меня есть компонент, который принимает список класса под названием EditConfiguration, и именно он генерирует мои редактируемые поля. Опять же, сами поля работают нормально, они просто каким-то образом мешают привязке TenantId. Я могу опубликовать более подробную информацию об этом компоненте/классе, если это поможет.
@Html.HiddenFor(model => model.TenantId);
@for (int i = 0; i < Model.Details.Count; i++)
{
MappingConfigDetail detail = Model.Details[i];
string prefix = "Model.Details[" + i.ToString() + "].";
@Model.ToNames[i]
@await Component.InvokeAsync("Edit", new { config = new List() {
new EditConfiguration() {/*params for my EditConfiguration class*/ },
Подробнее здесь: [url]https://stackoverflow.com/questions/79359821/c-sharp-mvc-model-property-has-0-value-although-the-form-gives-it-a-value[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия