获取服务器端的输入值

时间:2013-11-28 21:18:09

标签: c# asp.net asp.net-mvc input get

我遇到了一些麻烦而且不确定发生了什么。

我有一个带输入值的表单,希望能够获取该输入值并将其发送回我的控制器(服务器端)。

我的HTML代码

<form action="/Home/Search" method="get">
                    <button class="search-btn-widget"></button>
                    <input class="search-field" id="sub" type="text" onblur="if(this.value=='')this.value='Search';" onfocus="if(this.value=='Search')this.value='';" value="Search" />
                </form>

然后在我的控制器中我有

string sub = Request["sub"];

然而它最终为空并且不确定发生了什么。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

只是为了让它工作:添加name属性

 <input class="search-field" id="sub" name="sub" ...

但请检查this

答案 1 :(得分:1)

您需要将name属性添加到输入标记。

如果您启动开发人员控制台并查看正在发送的HTTP GET请求,您将看到没有查询字符串与请求关联。这将让你知道HTML方面的问题而不是ASP.Net MVC方面的问题。

更新输入标记:

<input class="search-field" id="sub" name="sub" type="text" onblur="if(this.value=='')this.value='Search';" onfocus="if(this.value=='Search')this.value='';" value="Search" />

将控制器操作更新为:

public ActionResult Search(string sub)

答案 2 :(得分:1)

1)如果您想看到Request的输入,则必须将Form作为POST发送:

<form action="/Home/Search" method="POST">

2)确保输入有name

<input class="search-field" id="sub" name="name" 
 type="text" 
 onblur="if(this.value=='')this.value='Search';"
 onfocus="if(this.value=='Search')this.value='';" 
 value="Search" />

然后你就可以在请求中看到它

答案 3 :(得分:0)

您应该将name属性添加到input元素。