Показать ошибку модели при просмотре без сильной привязки asp.net MVC - PullRequest
0 голосов
/ 10 октября 2019

У меня проблема с отображением ошибки модели. Ошибка при отображении модели сильно привязывает форму. Но когда я не использую строго привязку данных, это не показывает ошибку модели. Так как я могу показать ошибку модели или проверку без сильной привязки и почему она не показывает ошибку модели без сильной привязки.

Контроллер

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>

1 Ответ

0 голосов
/ 10 октября 2019

Ошибка модели - для строго типизированного, но если вы не хотите использовать строго типизированное представление, вам нужно создать пользовательскую проверку. Одним из способов является то, что в контроллере вы можете проверить, является ли поле пустым или нет, еслиэто нуль, тогда вы можете использовать TempData для печати сообщения об ошибке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...