Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 ADO.NET JavaScript LINQ AjaxPro DataGridView 面向对象 Extjs GridView XML DevExpress HTML教程 Oracle jQuery 分页 GDI+ Visual C++2010 MySQL Office2010 WPF MVC Dojo WCF4.0 VB.NET Sql2005 textbox cookie WCF WinForm Discuz!NT SQL经典语句 T-SQL checkbox ASPxGridView F# asp.net SQL VS2008新特性 DropDownList Access TreeView Ajax VS2008 页面执行时间 Flex 字符串 回调 VB2005 DataSet C#时间 ASP.NET性能优化 用户在线检测 动画
当前位置: 主页 > Mvc技术 >

ASP.NET MVC Framework体验(3):表单提交(2)

时间:2010-06-30 20:54来源:未知 作者:admin 点击:

  4.编写New视图,在这里我们将提供一些表单,供用户输入数据,编写HTML代码如下:

<h2>New Post</h2>
<hr />
<div class="postitem">
  Title:<input id="title" name="title" type="text" /><br /><br />
  Author:<input id="author" name="author" type="text" /><br /><br />
  Content:<textarea id="description" name="description" cols="40" rows="5"></textarea><br /><br />
  <input type="submit" value="Save" />
</div>
接下来添加一个HTML的form元素,并指定它的action为我们要增加新的Post的action,这里假定为Add,并且指定method为Post,最终我们完成的代码应该看起来如下所示:
<h2>New Post</h2>
<hr />
<div class="postitem">
  <form action="Add" method="post">
    Title:<input id="title" name="title" type="text" /><br /><br />
    Author:<input id="author" name="author" type="text" /><br /><br />
    Content:<textarea id="description" name="description" cols="40" rows="5"></textarea><br /><br />
    <input type="submit" value="Save" />
  </form>
</div>获取表单数据

  完成了上面的步骤之后,就可以编写控制器中Add action的代码,在这里需要获取表单的数据,并将其写入到数据库,ASP.NET MVC Framework中提供了多种方法获取表单数据。

  1.自动映射

  使用这种方法,我们只需要把方法的参数定义表单的名称,ASP.net MVC Framework将会自动帮助我们进行映射,直接把表单的数据赋值给form的Action所对应的方法参数上,

如下代码所示:

[ControllerAction]
public void Add(string title, string author, string description)
{
  Post post = new Post();
  post.Title = title;
  post.Author = author;
  post.Description = description;
  post.PubDate = DateTime.Now;
  BlogRepository repository = new BlogRepository();
  repository.Add(post);
  RedirectToAction("Index");
}

  2.第一种方法在使用时,如果界面上表单过多,会使方法的参数变大,这样好像就变成了重构中所说的“脏代码”,为了解决这个问题,我们还可以使用窗体变量来获取表单

的值,使其代码看起来如下所示:

[ControllerAction]
public void Add()
{
  Post post = new Post();
  post.Title = Request.Form["title"];
  post.Author = Request.Form["author"];
  post.Description = Request.Form["description"];
  post.PubDate = DateTime.Now;
  BlogRepository repository = new BlogRepository();
  repository.Add(post);
  RedirectToAction("Index");
}

(责任编辑:admin)

Tags:ASP.NET MVC 表单
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价