“Поле Id требуется” сообщение проверки на, Создают; идентификатор не набор к [Необходимому]

Реализуйте свою собственную логику фильтра. React-таблица предоставляет обратные вызовы для всего, что вам нужно, чтобы реализовать его самостоятельно:

onPageChange: undefined,
onSortedChange: undefined,
onFilteredChange: undefined,

Проверьте реквизитную часть документации, и на ней есть исчерпывающая документация.

69
задан Dan Beaulieu 20 May 2015 в 19:26
поделиться

7 ответов

Вы можете добавить атрибут:

 [Bind(Exclude = "Id")] 

на параметре в методе, а не классу, таким образом, На создании вы можете исключить его и на редактировании все равно будут обязательными:

public ActionResult Create([Bind(Exclude = "Id")] User u)
{
    // will exclude for create
}

public ActionResult Edit(User u)
{
    // will require for edit
}
86
ответ дан 24 November 2019 в 13:47
поделиться

Перед проверкой ModelState. IsValid удаляют 'идентификатор' из ModelState.

ModelState.Remove("Id");
0
ответ дан 24 November 2019 в 13:47
поделиться
[Bind(Exclude = "Id")]
public class Hebe
{
      public int Id {get;set;}

      [Required]
      public string Message {get; set}
}

Кстати над ним не связывает свойство ID для вашей модели на создании

7
ответ дан 24 November 2019 в 13:47
поделиться

Я только что создал новый проект 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 предмет. Тем не менее, связующее средство модели по умолчанию не должно показывать поведение, которое вы описываете.

1
ответ дан 24 November 2019 в 13:47
поделиться

У меня та же проблема с использованием RC2 с POCO. Если вы называете свойство Id, но не ставите на него атрибуты валидации, а IsValid говорит, что это необходимо. Если я назову какое-либо свойство, но не напечатаю Id, этого не произойдет. Почему я должен исключать Id?

Спасибо

.
2
ответ дан 24 November 2019 в 13:47
поделиться

У меня была та же проблема, за исключением того, что у меня было три целочисленных поля на моей модели. Мне удалось обойти его, установив все свои целочисленные свойства, которые были ошибочно необходимы для Nullable INT.

0
ответ дан 24 November 2019 в 13:47
поделиться

Отличный вопрос и ответы, спасли мою ... позади. Однако мне нужно кое-что добавить:

Вместо

[Bind(Exclude = "Id")]

, я думаю, лучше использовать

[Bind(Include = "Prop1, Prop2, Prop3, etc")]

.. где Prop1, Prop2 и Prop3 - это ЕДИНСТВЕННЫЕ свойства, к которым вы хотите привязать уровень действия.

Поскольку это белый список, а не черный список. Белый список лучше, безопаснее. Таким образом, вы также устраняете риск чрезмерной и недостаточной публикации. См. сообщение Брэда Уилсона .

11
ответ дан 24 November 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: