
- 本栏最新文章
- ASP.NET生成静态页面和分页主要的原理 05-09
- ASP.NET设计网络硬盘之查看文件夹 04-29
- ASP.NET设计网络硬盘之文件夹实现 04-29
- ASP.NET设计网络硬盘之上传文件 04-29
- 小试ASP.NET 2.0的兼容性 04-29
- ASP.NET中不定级动态菜单的实现 04-14
- ASP.NET中密码保护,MD5和SHA1算法的使用 04-14
- Asp.net Mvc Framework 九 (View与Controlle... 04-04
- 转:Sql server一些常见性能问题的总结 03-27
- 如何在asp+ 中使用自定义的pagelet 03-25

- 本栏推荐文章
- ASP.NET设计网络硬盘之查看文件夹 04-29
- ASP.NET设计网络硬盘之文件夹实现 04-29
- ASP.NET设计网络硬盘之上传文件 04-29
- 小试ASP.NET 2.0的兼容性 04-29
- ASP 系列函数大全 04-29
- Asp.net Mvc Framework 九 (View与Controlle... 04-04
- 【翻译】动态调用样式表代码 04-04
- Flash AS3.0 实现FLASH的“动态链接库” 03-31
- Flash AS3.0 爽快使用XML 03-31
- MySQL的LIST分区体验与总结 03-27
Asp.net Mvc Framework 九 (View与Controller交互) (1)
这一回为避免写第八节时那种情况再次出现,我改用Wps写了,如果复制过去格式有问题讲大家见谅 -邹健
本节所有示例都是讲解登录提交表单的过程
为了本课能更好讲解我们先建立一个账号的Model
namespace MvcApplication4.Models
{
public class Account
{
string _username;
public string Username {
get { return _username; }
set { _username = value ; }
}
string _password;
public string Password {
get { return _password; }
set { _password = value ; }
}
}
}
一. 使用我们Asp时代的老朋友
我们建立一个HomeController,之后在其中加一个Index的Action
public void Index() {
RenderView( "Index" );
}
是用于显示Index这个View的(Index.aspx):
这是提交表单的
< form method ="post" action =" <% = Url.Action("save") %> ">
<% = Html.TextBox( "username" ) %>
<% = Html.TextBox( "password" ) %>
<% = Html.SubmitButton( "登录" ) %>
</ form >
大家可以看到在这个View中form的Action为save
于是我们还需要一个叫save的Action用于接收表单:
public void save (){
ViewData[ "username" ] = Request.Form[ "username" ];
ViewData[ "password" ] = Request.Form[ "password" ];
RenderView( "Result" );
}
最后我们将结果显示在Result.aspx这个View中:
这是用于接收结果的
<% = ViewData [ "username" ] %>
<% = ViewData [ "password" ] %>
大家都看到了,我们在Save中使用了我们的老朋友Request.Form来接收了表单
二. 其实Asp.netMVC为我们提供了更好的方法
是什么方法呢?
那就是我觉得不错的一方法 ReadFromRequest 它可以接收Form和QueryString
看以下save这个Action的代码
public void save (){
ViewData[ "username" ] = this .ReadFromRequest( "username" );
ViewData[ "password" ] = this .ReadFromRequest( "password" );
RenderView( "Result" );
}
可以实现上面一样的功能
三. 我们可以用"参数"
前面我们提到了参数来接收的功能
public void save ( string username, string password){
ViewData[ "username" ] = username;
ViewData[ "password" ] = password;
RenderView( "Result" );
}
一切OK
四. 到激动人心的地方了我们使用绑定功能
在Monorail中我们有这样的功能
public void save([DataBind("account")] Account account) ;可以实现将一个对象与表单绑定
当然Asp.net MVC中也应该有
我们将View改成:
这是提交表单的
< form method ="post" action =" <% = Url.Action("save") %> ">
<% = Html.TextBox( " Account .username" ) %>
<% = Html.TextBox( " Account .password" ) %>
<% = Html.SubmitButton( "登录" ) %>
</ form >
而Save这个Action中写如下代码:
public void save() {
Account user = new Account ();
BindingHelperExtensions .UpdateFrom(user, Request.Form, " Account " );
ViewData[ "username" ] = user.Username;
ViewData[ "password" ] = user.Password;
RenderView( "Result" );
}
呵呵,仍然可以输
BindingHelperExtensions .UpdateFrom 让我们将从表单中以对象方式传递着数据
当然这个对象如果绑定的为Dlinq的对象就更加方便应用了
也可以通过这种方式绑定
View: 这是提交表单的
< form method ="post" action =" <% = Url.Action("save") %> ">
&nbs




