передать значение флажка контроллеру - PullRequest
0 голосов
/ 08 ноября 2018

Как передать значение из моего флажка (представления) в контроллер?

<div className="row">
    <div class="filters-container col-sm-3">
        <h5 class="navbar navbar-dark bg-info">Brands</h5>

        <p>Apple</p>
        <input type="checkbox" class="filter" id="AppleFilter" value="true" name="Filters"></input>
    </div>
</div>

Мой контроллер:

public class ProductController : DaoController<ProductDao, Product>
{
    [HttpGet]
    public override IActionResult Get()
    {
        return InnerGet();
    }

    [HttpGet("{value}")]
    public IActionResult Search(string value)
    {
        var daoManager = HttpContext.RequestServices.GetService<DaoManager>();
        List<Product> products = daoManager.ProductDao.SearchProduct(value);
        return Ok(products);
    }

    [HttpGet]
    public IActionResult Filter(string responsables, bool checkResp = false)
    {
        ///????
    }

Я не знаю, что добавить в представление иконтроллер для передачи значений.

1 Ответ

0 голосов
/ 08 ноября 2018

Вы должны представить ViewModel. Простой способ отправить значения - отправить POST-инстанцию ​​ViewModel в действие контроллера.

public class FilterViewModel {

   [DisplayName("Apple")]
   public bool DoApplyAppleFilter { get; set; }
}

Скажите View Filter.cshtml, чтобы использовать эту ViewModel:

@model FilterViewModel 

@* this <form> will be posted to the "Filter" action in the "ProductController" *@
@using (Html.BeginForm("Filter", "Product", FormMethod.Post, new { @class = "ym-form"})) {

    @Html.LabelFor(m => m.DoApplyAppleFilter)    @* renders <label> with the given DisplayName for the checkbox *@
    @Html.CheckBoxFor(m => m.DoApplyAppleFilter) @* renders <input type="checkbox"> *@

    <button type="submit">Apply filter</button>
}

Действие контроллера:

[HttpPost]
public IActionResult Filter(FilterViewModel viewModel) {

   bool isChecked = viewModel.DoApplyAppleFilter;
   // ...
}

Вместо отправки <button> вы также можете использовать AJAX для отправки <form> или извлечь значения и использовать запрос GET.

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