Проблема в том, что мой контроллер привязывает имя метода к свойству «Действие» моей модели, и, конечно, это вызывает ошибку в состоянии моей модели, потому что Имя метода - Строка , а мое Свойство действия - Объект . Я хочу, чтобы свойство Action было пустым, если оно отсутствует в моих формах данных.
Данные формы:
Состояние модели при обработке POST-запроса:
Действие моего контроллера:
[HttpPost]
public ActionResult RouteRoleActionsSave(TskRouteRoleAction model,List<TskAction.Actions> RoleActions = null)
{
using (var context = new SmartDbContext())
{
if (ModelState.IsValid)
{
return Json("ok");
}
return Json(ModelState);
}
}
Моя модель:
[Table("TSK_ROUTE_ROLE_ACTIONS")]
public class TskRouteRoleAction
{
[Key, Column("ROUTE_ID", Order = 0), ForeignKey("Route")]
public decimal RouteId { get; set; }
public TskRoute Route { get; set; }
[Key, Column("ROLE_ID", TypeName = "numeric", Order = 1), ForeignKey("Role")]
public TskRole.Roles? RoleId { get; set; }
public TskRole Role { get; set; }
[Key, Column("ACTION_ID", TypeName = "numeric", Order = 2), ForeignKey("Action")]
public TskAction.Actions? ActionId { get; set; }
public TskAction Action { get; set; }
}