Я Франческо и я новичок. У меня проблема с ASP.NET MVC3 в отношении данных, размещаемых между View и Controller. Моя цель - использовать форму для редактирования определенной записи из моей базы данных, а затем отправить ее обратно на контроллер, который отвечает за проверку полей записи и отправку их в базу данных.
Данные передаются из контроллера в представление с помощью ViewModel, и поэтому привязка DefaultDataBinding в этом случае не применяется. Я перепробовал много подходов, я контролировал общение с Fiddler, но не смог решить свою проблему. Метод, описанный Филом Хааком , не работает, как и FormCollection.
Здесь у вас есть код:
ViewModels: я передаю его в View для создания таблицы. Имя и список имен элементов (заголовки столбцов таблицы) только для отображения. Я хочу получить Id, Месяц (они передаются правильно в качестве параметров и представляют заголовки строк таблицы) и, что наиболее важно, ActualValue элементов и их Id (у меня есть таблица ассоциации в моей базе данных с Id, Itemid и Month как ключи)
public class EditViewModel
{
[ScaffoldColumn(false)]
public int Id { get; set; }
[ScaffoldColumn(false)]
public int Month { get; set; }
public string Name { get; set; }
public List<ItemViewModel> ItemList { get; set; }
}
public class ItemViewModel
{
[ScaffoldColumn(false)]
public int ItemId { get; set; }
public string ItemName { get; set; }
public float ActualValue { get; set; }
}
Представление: представление строго типизировано как ViewModels.EditViewModel и отправляет поля с помощью кнопки отправки. Я должен сгенерировать таблицу, используя циклы foreach , потому что я не знаю, сколько элементов заранее
Контроллер. Контроллер должен обновлять каждое значение kpi, передаваемое из представления, связанного с определенным идентификатором и месяцем.
[HttpPost]
public ActionResult EditMonth(int Id, int Month, //FormCollection kpiValues)
Надеюсь, я был достаточно ясен и с нетерпением жду помощи. Большое спасибо!