Реализуйте свою собственную логику фильтра. React-таблица предоставляет обратные вызовы для всего, что вам нужно, чтобы реализовать его самостоятельно:
onPageChange: undefined,
onSortedChange: undefined,
onFilteredChange: undefined,
Проверьте реквизитную часть документации, и на ней есть исчерпывающая документация.
Вы можете добавить атрибут:
[Bind(Exclude = "Id")]
на параметре в методе, а не классу, таким образом, На создании вы можете исключить его и на редактировании все равно будут обязательными:
public ActionResult Create([Bind(Exclude = "Id")] User u)
{
// will exclude for create
}
public ActionResult Edit(User u)
{
// will require for edit
}
Перед проверкой ModelState. IsValid удаляют 'идентификатор' из ModelState.
ModelState.Remove("Id");
[Bind(Exclude = "Id")]
public class Hebe
{
public int Id {get;set;}
[Required]
public string Message {get; set}
}
Кстати над ним не связывает свойство ID для вашей модели на создании
Я только что создал новый проект MVC2 и добавил простое Poco, а также контроллер и представление. Из того, что я понимаю, вы используете модельную привязку для создания объекта, то есть
using System.ComponentModel.DataAnnotations;
public class SimpleObject
{
public int Id {get;set;}
[Required]
public string Message { get; set; }
}
в контроллере у нас
[HttpPost]
public ActionResult Create(SimpleObject created)
{
/// do something
}
и в поле зрения, нет редактора для идентификационного поля?
Это не должно заканчиваться в любых сообщениях об ошибках. Вместо этого ID должен быть установлен на по умолчанию (INT), который является 0. Это работает для меня. Какую версию MVC2 вы используете (RC, я предполагаю)?
Не ошибайтесь: важно предотвратить связание идентификатора модельными связующими, поскольку это позволит злоупотреблениям вмешиваться в ID предмет. Тем не менее, связующее средство модели по умолчанию не должно показывать поведение, которое вы описываете.
У меня та же проблема с использованием RC2 с POCO. Если вы называете свойство Id, но не ставите на него атрибуты валидации, а IsValid говорит, что это необходимо. Если я назову какое-либо свойство, но не напечатаю Id, этого не произойдет. Почему я должен исключать Id?
Спасибо
.У меня была та же проблема, за исключением того, что у меня было три целочисленных поля на моей модели. Мне удалось обойти его, установив все свои целочисленные свойства, которые были ошибочно необходимы для Nullable INT.
Отличный вопрос и ответы, спасли мою ... позади. Однако мне нужно кое-что добавить:
Вместо
[Bind(Exclude = "Id")]
, я думаю, лучше использовать
[Bind(Include = "Prop1, Prop2, Prop3, etc")]
.. где Prop1, Prop2 и Prop3 - это ЕДИНСТВЕННЫЕ свойства, к которым вы хотите привязать уровень действия.
Поскольку это белый список, а не черный список. Белый список лучше, безопаснее. Таким образом, вы также устраняете риск чрезмерной и недостаточной публикации. См. сообщение Брэда Уилсона .