我正在尝试在MVC C#中创建一个表单,允许用户输入姓氏,名字,部门,年份,然后单击“搜索”按钮,该按钮将根据输入的搜索条件返回员工列表。
我的问题是允许多个搜索文本框条件进入一个搜索按钮。
我能够将值硬编码到html actionlink中,如下所示,但它无法从文本框中获取值。
<%= Html.ActionLink("Results", "Results", new { lastName = "Smith",
firstName = "", dept = "", year = "2008" } )%>
我真的只想拥有四个文本框和一个搜索按钮,以便从数据库中恢复列表。
感谢您的帮助。
答案 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调用,发送此值。