【问题标题】:How can I pass selected item of select list to controller action as parameter如何将选择列表的选定项目作为参数传递给控制器​​操作
【发布时间】:2020-05-10 10:29:04
【问题描述】:

我想根据用户选择对数据进行排序,但我无法将 sleeted 项目传递给控制器​​操作。

在我看来:

<form asp-action="Explore" asp-controller="Venue" method="Post">
  <div class="form-group">
    <select title="Sort by">
      <option name="name"> <a asp-controller="Venue" asp-action="Explore" asp-route-sortby="Name">Name</a> </option>
      <option name="rating">Rating</option>
      <option name="rating">Price</option>

    </select>
  </div>

在我的控制器中:

public async Task < IActionResult > Explore(
  string sortby) {
  return View(_context.Hotels.OrdeyrByDescending(x => x.Name).ToList();
  }

【问题讨论】:

  • 这些代码只有html代码。请提供更多信息,例如您使用的框架、控制器端点、示例数据。
  • 我正在使用 aspnet core mvc
  • 您必须使用 AJAX 方法来帮助您将变量传递给控制器​​的操作方法。 Google it:如何使用 ajax 将数据传递给 mvc 核心中的控制器。
  • 我没有找到任何教程

标签: jquery .net ajax asp.net-core model-view-controller


【解决方案1】:

假设您正在点击Action,请将name 属性添加到您的&lt;select&gt;

所以是这样的:

<select title="Sort by" name="sortby">

请记住,名称必须与操作中的参数名称匹配。此外,您需要将value 属性添加到所有&lt;option&gt; 标签中,如下所示:

<option name="rating" value="rating">Rating</option>

【讨论】:

  • 谢谢,但我怎样才能在下拉更改时点击控制器操作
  • 那是一个单独的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多