我目前正在尝试从下拉列表中获取一个值,将其存储到变量中,然后将其传递到 Controller 的操作结果中。当我运行代码时,索引应该将下拉框中所选项目的值存储在变量 SelectedDistrict
中,然后转到查询操作。查询将采用 DistrictViewModel
变量作为参数,然后使用 var school = getQuery(variable.SelectedDistrict)
进入我拥有的函数。然而,在函数中,每当我调试时,它都会说变量 sd 为空。也许下拉框中的值没有正确存储?最后,我想在一个表中显示我的学校表中来自下拉列表中所选地区的所有学校。由于空值,该表未被填充。为了更清楚起见,这是我的代码。
- 区域 View 模型:
- 学校 View 模型:
- 带有 getQuery 函数的 Controller :
- 索引 View :
- 查询 View :
运行代码时的表格:
最佳答案
问题是您的 Query Controller 方法期望以对象的形式传递一些数据,但您没有向它传递任何内容。如果它是 GET 请求(似乎是因为您刚刚在单击时设置了 location.href
),则这些值需要位于查询字符串中。或者,您可以将表单 POST 到该 Controller 操作。
您需要<form>
标签。您可以 GET 或 POST 到您的 Controller 方法,这并不重要(模型绑定(bind)可以以任何方式工作)。这取决于您是否希望人们能够直接深层链接到搜索结果。
<form action="@Url.Action("Query", "District") method="get">
@Html.DropDownListFor(m => m.SelectedDistrict, Model.Districts)
<button type="submit" value="Submit"/>
</form>
这几乎应该可以做到,或者至少让你走上正确的道路。
关于mysql - 在 MVC 中将参数从 View 传递到操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31194607/