mysql - 在 MVC 中将参数从 View 传递到操作

标签 mysql linq asp.net-mvc-4

我目前正在尝试从下拉列表中获取一个值,将其存储到变量中,然后将其传递到 Controller 的操作结果中。当我运行代码时,索引应该将下拉框中所选项目的值存储在变量 SelectedDistrict 中,然后转到查询操作。查询将采用 DistrictViewModel 变量作为参数,然后使用 var school = getQuery(variable.SelectedDistrict) 进入我拥有的函数。然而,在函数中,每当我调试时,它都会说变量 sd 为空。也许下拉框中的值没有正确存储?最后,我想在一个表中显示我的学校表中来自下拉列表中所选地区的所有学校。由于空值,该表未被填充。为了更清楚起见,这是我的代码。

  • 区域 View 模型:

District View Model

  • 学校 View 模型:

enter image description here

  • 带有 getQuery 函数的 Controller :

enter image description here

  • 索引 View :

enter image description here

  • 查询 View :

enter image description here

  • 运行代码时的表格:

最佳答案

问题是您的 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/

相关文章:

c# - 在 C# 中创建多层矩阵式集合

php - 可以创建一个包含 MySQL 表数据的溢出表

sql - 我可以使用哪种模式来容纳基于手动日期的数据条目?

mysql - 为MySQL中的表添加约束

.net - 今天如何在 ASP.net MVC 4 中进行授权?

asp.net - glimpse如何持久化调试信息?

c# - Name For 在编辑器模板中遍历集合时生成不正确的名称

mysql - 根据条件选择 MySQL 中的随机行

c# - 将行转换为linq中的列

c# - DeleteOnSubmit LINQ 异常 "Cannot add an entity with a key that is already in use"