У меня проблема с отображением ошибки модели. Ошибка при отображении модели сильно привязывает форму. Но когда я не использую строго привязку данных, это не показывает ошибку модели. Так как я могу показать ошибку модели или проверку без сильной привязки и почему она не показывает ошибку модели без сильной привязки.
Контроллер
public ActionResult productFilter()
{
catName();
return View();
}
[HttpPost]
public ActionResult productFilter(productFilterModel filter)
{
catName();
if(ModelState.IsValid)
{
//other operations here
}
return View();
}
Модель
public class productFilterModel
{
[Required]
public string catName { get; set; }
[Required]
public int maxPrice { get; set; }
[Required]
public int minPrice { get; set; }
}
Вид
@model RentalServices.Models.productFilterModel
// with strongly binding form and showing model error
<form action="/Product/productFilter" method="post">
<label>Category</label>
@Html.DropDownListFor(model => model.catName, ViewBag.catName as SelectList, "CHOOSE CATEGORY", new { @class = "form-control"})
@Html.ValidationMessage("catName", new { @class = "text-danger" })
<label>Min Price</label>
@Html.TextBoxFor(model => model.minPrice, new { @class = "form-control"})
@Html.ValidationMessage("minPrice", new { @class = "text-danger" })
<label>Mxn Price</label>
@Html.TextBoxFor(model => model.maxPrice, new { @class = "form-control"})
@Html.ValidationMessage("maxPrice", new { @class = "text-danger" })
<button type="submit">Submit</button>
</form>
// without strongly binding form and not showing model error
<form action="/Product/productFilter" method="post">
<label>Category</label>
<select name="catName">
<option value="1">mobile</option>
<option value="2">laptop</option>
<option value="3">printer</option>
</select>
@Html.ValidationMessage("catName", new { @class = "text-danger" })
<label>Min Price</label>
<input type= "number" name="minPrice" />
@Html.ValidationMessage("minPrice", new { @class = "text-danger" })
<label>Max Price</label>
<input type= "number" name="maxPrice" />
@Html.ValidationMessage("maxPrice", new { @class = "text-danger" })
<button type="submit">Submit</button>
</form>