mvc [httppost]问题

点击按钮,就会输出过滤的结果。View:@using(Html.BeginForm()){<p>Title:@Html.TextBox("SearchString")<b... 点击按钮,就会输出过滤的结果。

View:
@using (Html.BeginForm())
{

<p> Title: @Html.TextBox("SearchString") <br />

<input type="submit" value="Filter" /></p>
}

Controller:
public ActionResult Index(string searchString)
{
var movies = from m in db.Movies
select m;

if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
return View(movies);
}

我的问题是为什么Index这个方法没有[HttpPost]属性, 还是会处理post请求, 不是默认的属性是[HttpGet]吗?
既然public ActionResult Index(string searchString)
能够处理post,为什么再写上一个
[HttpPost]
public string Index(FormCollection fc, string searchString)
{
return "<h3> From [HttpPost]Index: " + searchString + "</h3>";
}

再提交post的时候,就会被这个给处理。
展开
 我来答
百度网友3831f2b
2015-02-13 · TA获得超过162个赞
知道小有建树答主
回答量:143
采纳率:100%
帮助的人:93.9万
展开全部
因为Index的类型是 ActionResult , 并且返回的是View页面级别的,也就是说如果你页面有任何提交行为(不论是Post还是Get),都会走这个Index函数。

而加上HttpPost则是指,这个函数只能够被Post调用。所以你Post提交过来,也是能够被处理的。

这里你要注意ActionResut,JsonResult等方面的知识点。 学习MVC,你最好还要去了解一下modelbinder,可以加快你的开发速度。
匿名用户
2015-02-12
展开全部
No, 加上了才能处理post。默认是get方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式