我们知道在普通的表单元素默认情况下如不设置method 默认情况下是发送 HTTP GET请求
下面是一个普通的表单 可以用来提交input 内的数据到 action 地址mvc中是控制器访问方式(mvc3也可以通过重写Global文件中的路由机制来改变) asp.net 为访问地址
<form action="control/action" method="get">
<input name="q" type="text">
<input type="submit" value="Search">
</form>
该选择GET方法还是POST方法
如果不想让浏览器把输入值放入查询字符串中,而是想放入HTTP请求的主体中可以给method特性赋值post.
比如: GET 结果页面链接需要建立书签 可以在电子邮件或者网页中的URL作为超链接来使用
POST 请求可以用来提交信用卡信息和交易信息,重要的信息都可以用POST
通常情况下GET 请求用于读操作,POST请求用于写操作.
实际例子(asp.net mvc3) 首先创建一个asp.net mvc3 项目然后
用表单实现搜索
View 页面 把下面代码放进HomeController控制器的Index中
<form action="/Home/Search" method="get">
<input type="text" name="q" />
<input type="submit" value="Search" />
</form>
Controller 控制器 在HomeController控制器中实现Search方法
public ActionResult Search(string q)
{
var albums = storeDB.Albums
.Whrer(a => a.CommunityName.Contais(q) && q == null)
.Take(10);
return View(albums);
}
注意,这里Search操作接收名为q的字符串参数.当q有值时,asp.net mvc框架会自动在查询字符串中找到这个值;
由控制器告知 asp.net mvc 框架渲染视图,现在可以再 Home 视图目录下创建Search.cshtml视图来显示搜索结果:
@model IEnumerable<Models.Bus_Community>
<table>
<tr>
<th>CommunityName</th>
<th>AreaName</th>
<th>BlockName</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.CommunityName</td>
<td>@item.AreaName</td>
<td>@item.BlockName</td>
</tr>
}
</table>
今天就介绍到这儿,谢谢大家