Ваша кнопка отправки находится за пределами формы. Это невозможно. Кнопка отправки должна быть размещена внутри соответствующего элемента <form>
. Поэтому вам нужно переместить <div id="button"></div>
внутрь формы.
Если по какой-то причине div должен оставаться за пределами формы (что семантически неверно), вам нужно использовать javascript, и в этом случае вы можете использовать обычную кнопку, а не кнопку отправки.
Другим важным аспектом HTML-форм является то, что они не могут быть вложенными. Поэтому, если у вас есть другая форма в вашем макете, вы не можете иметь вложенную форму внутри своего представления. Это неверный HTML и приводит к неожиданному поведению.
Что касается проверки на стороне сервера, убедитесь, что действие контроллера, на которое вы отправляете форму, принимает модель представления в качестве аргумента действия:
[HttpPost]
public ActionResult MyAction(abc model)
{
if (!ModelState.IsValid)
{
return View(model);
}
...
}