用于在MVC C#中过滤/搜索的多个文本框

时间:2010-01-21 19:30:16

标签: c# asp.net asp.net-mvc search

我正在尝试在MVC C#中创建一个表单,允许用户输入姓氏,名字,部门,年份,然后单击“搜索”按钮,该按钮将根据输入的搜索条件返回员工列表。

我的问题是允许多个搜索文本框条件进入一个搜索按钮。

我能够将值硬编码到html actionlink中,如下所示,但它无法从文本框中获取值。

<%= Html.ActionLink("Results", "Results", new { lastName = "Smith", 
    firstName = "", dept = "", year = "2008" } )%>

我真的只想拥有四个文本框和一个搜索按钮,以便从数据库中恢复列表。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

在Index.aspx页面上

<% using (Html.BeginForm()) { %>

   <%= Html.TextBox("firstname") %>
   <%= Html.TextBox("lastname") %>

   <input id="submit1" type="submit" value="Submit" />

<% } %>

这将发布“firstname”和“lastname”表单字段值,并在您的操作中选择它们,就像在@Trimack的示例中一样。

您可以使用TempData将发布的数据转发到结果页面。

TempData["firstName"] = firstname;

在您的results.aspx页面中,您有:

<%= Html.Hidden("firstname", TempData["firstName"]) %>

答案 1 :(得分:1)

如果你在一个表单中有它,你可以捕获它的提交以及每个文本框(或表单中的任何其他标记)的值。

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Results(string lastName, string firstName, string dept, int year)

该方法重载结果,仅由POST请求启动。

答案 2 :(得分:0)

我认为您需要使用表单和提交按钮,然后您将获得表单中所有输入字段的值,您可以使用ajax执行此操作,因此它不会刷新整个页面。

如果您不想要表单解决方案,可以使用一些javascript(jquery很好)来检测文本框的值更改,然后获取文本框的值并对控制器执行ajax调用,发送此值。