我遇到了一些麻烦而且不确定发生了什么。
我有一个带输入值的表单,希望能够获取该输入值并将其发送回我的控制器(服务器端)。
我的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"];
然而它最终为空并且不确定发生了什么。有什么想法吗?
答案 0 :(得分:2)
答案 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元素。