У меня есть форма для удаления объекта из таблицы. Я хотел бы поместить текстовое поле, которое будет проверять ввод, прежде чем нажимать кнопку "Удалить".
Сущность модели объектов выглядит так (она имеет гораздо больше атрибутов, но я просто оставил важный):
public partial class card
{
public string reason { get; set; }
}
Метод контроллера запроса POST (delete) выглядит следующим образом:
// POST: /card/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
card temp_card = db.cardss.Find(id);
temp_card.deleted = true;
db.SaveChanges();
if (ModelState.IsValid)
return RedirectToAction("Index");
return View(temp_card);
}
Я прочитал, мне нужно создать другой класс и использовать MetaDataAnnotations для этого, потому что я использую модели сущностей. Поэтому я написал следующее:
[MetadataType(typeof(CardMetaData))]
public partial class card
{
public string reason { get; set; }
}
public class CardMetaData
{
[Required(ErrorMessage = "Write a reason for deletion.")]
public string reason { get; set; }
}
И в моем Delete.aspx есть следующие строки:
<%= Html.ValidationSummary("Delete was unsuccessful.") %>
<div class="display-field">
<%: Html.TextBoxFor(model => model.reason) %>
<%: Html.ValidationMessageFor(model => model.reason) %>
</div>
Это не отображает сообщение, если я нажимаю кнопку удаления, и текстовое поле пуст. Что мне не хватает?