Когда моя страница загружает мои ValidationSummary и ValidationMessageFor (model => model.TestNumbersString), оба отображают ошибку проверки, несмотря на то, что страница загружается просто. Я проверил, что в моем файле _Layout.cshtml есть ссылка на файл .css, и для него существуют стили.
Model.cs
[Required]
public string TestNumbersString { get; set; }
HomeController.cs
public ActionResult Index(TestModel model)
{
return View(model);
}
partialView.cshtml
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @class = "form" }))
{
@Html.TextAreaFor(model => model.TestNumbersString, new { @class = "testBox" })
@Html.ValidationMessageFor(model => model.TestNumbersString)
}
Мой макет, который я заметил, содержит несколько файлов javascript и css, но на странице работает другая проверка, и я знаю, что site.css загружен для других частей страницы (но не для моей формы, но это другое проблема).
_Layout.cshtml
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
Устранение неполадок, которые я до сих пор проводил, привело меня к выводу, что класс для сообщения проверки - field-validation-error. Поэтому я считаю, что это не ошибка .css (даже если стиль CSS не применяется правильно).
Я также хочу пояснить, что это частичный макет. Я не уверен, вызовет ли это дополнительные проблемы при проверке.
РЕДАКТИРОВАТЬ: Решение
Спасибо @jacqijvv за решение.
public ActionResult Index()
{
TestModel model = new TestModel();
return View(model);
}
[HttpPost]
//We have these separate as this is the design for MVC.
public ActionResult Index(TDMixParametersViewModel model)
{
if (ModelState.IsValid)
return View(model);
else
{
model = new TDMixParametersViewModel();
return View(model);
}
}