在down.csdn.net中下载了一个mvc的入门的小例子.
我一段一段代码的剖析,学到了不少的东西:
[HttpPost]
public ActionResult Create(Article article)
{
if (ModelState.IsValid)
{
repository.Create(article);
return RedirectToAction("Index");
}
else
{
return View(GetArticleCreateModel());
}
}
上面的和下面的区别
public ActionResult Create()
{
ArticleCreateModel articleCreateModel = GetArticleCreateModel();
return View(articleCreateModel);
}
两个action的方法名称是一样的, 但是上面的方法只是接收post方式提交的,所以可以这样说:如果Create Action对应的是一个Create.aspx页面,那么加载的时候调用的就是没有HttpPost 的Action 如果在Create.aspx 提交了数据,还是由Create 的Action处理的话 就调用有httppost的Create Action
public ActionResult Create()
{
ArticleCreateModel articleCreateModel = GetArticleCreateModel();
return View(articleCreateModel);
}
看到return value return 的对象是ArticleCreateModel对象这个对象的用处是什么呢?
看到前台有这样的代码:
<% Html.RenderPartial("ArticleList", Model); %>
对应:ArticleCreateModel对象就是:Model对象. 而在<% Html.RenderPartial("ArticleList", Model); %> 中ArticleList是什么呢? 我尝试修改过比如我改成了:Articist 发现报一个错误:
“/”应用程式中的伺服器错误。
未找到分部视图“Articist”。搜索了以下位置:
~/Views/Home/Articist.aspx
~/Views/Home/Articist.ascx
~/Views/Shared/Articist.aspx
~/Views/Shared/Articist.ascx
由此推断这个方法是根据 "articlelist这个aspx文件或者是ascx文件显示model对象的方法"
也告诉我这样可以实现嵌套页面:无论是ascx文件还是aspx文件
在Global.asax中没有特殊的配置.这样这个例子就算是完结了.