Привет, только что подумал о сопоставлении и привязке моей сущности в контроллере.Как правильно связать сущность в модели, чтобы я мог использовать modelstate
Я создаю новый MenuItem, используя MenuItemModel.
public class MenuItemModel
{
public List<SelectListItem> Menus { get; set; }
public MenuItem MenuItem { get; set; }
}
, где мой класс MenuItem определяется следующим образом:
public class MenuItem:Entity
{
public virtual int MenuItemId { get; set; }
public virtual Menu Menu { get; set; }
[Required]
public virtual string Name { get; set; }
public virtual int ItemOrder { get; set; }
public virtual string ExternalUrl { get; set; }
public virtual DateTime Created { get; set; }
public virtual bool Deleted { get; set; }
public virtual DateTime? DisplayUntil { get; set; }
public virtual User Author { get; set; }
}
теперь, когда я связываю свою сущность в контроллере.
//
// POST: /Administrator/MenuItem/Create
[HttpPost]
public ActionResult Create(MenuItem menuItem)
{
if (ModelState.IsValid)
{
// do saving logic
menuItem.Created = DateTime.Now;
menuItem.Author = this._userProvider.GetCurrentUser();
menuItem.Menu = _menuRepository.Load(menuItem.Menu.MenuId);
}
//restore
MenuItemModel menuItemModel = new MenuItemModel();
menuItemModel.MenuItem = menuItem;
menuItemModel.Menus =
this._menuRepository.All.Select(x => new SelectListItem() { Text = x.Name, Value = x.MenuId.ToString() }).ToList();
return View(menuItemModel);
}
единственная проблема в том, что я получаю подтверждение не только для MenuItem, но и для Menu, User.
Как установить эту проверку для принятия проверки только для объекта MenuItem?
PS Я знаю, что могу войти в элементы состояния модели и найти только те объекты, которые мне нужны, и проверить, действительны ли они, но я верюбудет лучший способ сделать это ...
Любая идея приветствуется.