asp.net MVC学习笔记三(第一个表单提交,第一个页面跳转及MVC中的ViewState与Session)...

用惯WebForm的可能会忘掉了传统的表单提交方式,jsp,asp,php都是这样。MVC是返璞归真了。
用到的Model

ExpandedBlockStart.gif 代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;

namespace  FirstMVC.Models
{
    
///   <summary>
    
///  用户实体类
    
///   </summary>
     public   class  UserInfoModel
    {
        
public   string  UserName {  get set ; }
        
public   string  Password {  get set ; }
    }
}

 

用到的View,这里指定表单提交的路径,向哪个Action提交。

ExpandedBlockStart.gif 代码
<% @ Page Language = " C# "  Inherits = " System.Web.Mvc.ViewPage "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > UserView </ title >
</ head >
< body >
    
< div >
    
< p >
        ViewState
<% = ViewData[ " ViewState " %> < br  />
        Session
<% = TempData[ " Session " %>
    
</ p >
    
        
<% -- 这里定义表单提交向哪里。跟传统的模式一样了。controller名字与action名字不区分大小写 -- %>
        
<% using(Html.BeginRouteForm( new  {controller  =   " user " ,action = " process " })){  %>
        
<% -- 表单数据,这里命名也不区分大小写 -- %>
        
< p >< label > 密码1: </ label > <% = Html.Password( " a.password " %> </ p >
        
< p >< label > 用户名1: </ label > <% = Html.TextBox( " a.username " %> </ p >
        
        
< p >< label > 密码2: </ label > <% = Html.Password( " b.password " %> </ p >
        
< p >< label > 用户名2: </ label > <% = Html.TextBox( " b.username " %> </ p >
        
< p >< input  type ="submit"   /></ p >
        
<% %>
    
</ div >
</ body >
</ html >

 

用到的Controller,这里的Process Action接收数据并页面跳转。

ExpandedBlockStart.gif 代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.Mvc;

using  FirstMVC.Models;

namespace  FirstMVC.Controllers
{
    
public   class  UserController : Controller
    {
        
///   <summary>
        
///  辅助判断的方法
        
///   </summary>
        
///   <param name="userName"></param>
        
///   <param name="password"></param>
        
///   <returns></returns>
         bool  AreEquals( string  userName,  string  password)
        {
            
return  (userName.ToLower()  ==   " admin "   &&  password.ToLower()  ==   " admin123 " );
        }
        
///   <summary>
        
///  接收post提交的数据
        
///   </summary>
        
///   <param name="a"></param>
        
///   <param name="b"></param>
        
///   <returns></returns>
         public  ActionResult Process(UserInfoModel a, UserInfoModel b)
        {
            
if  (AreEquals(a.UserName, a.Password)  &&  AreEquals(b.UserName, b.Password))
                
return  Content( " 登录成功 " );
            
else
                
return  Redirect( " http://www.0379zd.com " );

        }
        
//
        
//  GET: /User/

        
public  ActionResult UserView()
        {
            
// ViewData[""]相当于ViewState[""]
            ViewData[ " ViewState " =   " MVC ViewState " ;
            
return  View();
        }

    }
}

 

首页登录的时候,设置TempData

ExpandedBlockStart.gif 代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.Mvc;

namespace  FirstMVC.Controllers
{
    [HandleError]
    
public   class  HomeController : Controller
    {
        
public  ActionResult Index()
        {
            ViewData[
" Message " =   " Welcome to ASP.NET MVC! " ;
            
// TempData[""]相当于Session[""]
            TempData[ " Session " =   " MVC Session " ;

            
return  View();
        }

        
public  ActionResult About()
        {
            
return  View();
        }
    }
}

 

 

ExpandedBlockStart.gif 代码
<% @ Page Language = " C# "  MasterPageFile = " ~/Views/Shared/Site.Master "  Inherits = " System.Web.Mvc.ViewPage "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="TitleContent"  runat ="server" >
    Home Page
</ asp:Content >

< asp:Content  ID ="Content2"  ContentPlaceHolderID ="MainContent"  runat ="server" >
    
< h2 > <% =  Html.Encode(ViewData[ " Message " ])  %> </ h2 >
    
< p >
        第一个次表单提交,第一个页面跳转及MVC中的ViewState与Session
< href ="/user/userview"  title ="ASP.NET MVC Website" > http://asp.net/mvc </ a > .
    
</ p >
</ asp:Content >

本文源码下载:http://files.cnblogs.com/greatverve/FirstMVC3.rar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET ViewState 是一种用于在 Web 应用程序跨请求存储数据的机制。以下是一个使用 ViewState 的示例: 假设您有一个页面,其包含一个文本框和一个按钮。用户在文本框输入一些文本,然后单击按钮。在单击按钮时,将在服务器端处理程序使用 ViewState 存储文本框,并在页面上显示它。 以下是一个简单的 ASP.NET 页面代码示例,它演示了如何使用 ViewState 存储和检索文本框: ```html <%@ Page Language="C#" %> <!DOCTYPE html> <html> <head runat="server"> <title>ViewState Example</title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="Save" OnClick="Button1_Click" /> <br /> <asp:Label ID="Label1" runat="server"></asp:Label> </div> </form> </body> </html> ``` 在按钮单击事件处理程序,我们将文本框存储在 ViewState ,并将其显示在页面上: ```csharp protected void Button1_Click(object sender, EventArgs e) { string text = TextBox1.Text; ViewState["myText"] = text; Label1.Text = "Text saved: " + text; } ``` 在页面加载事件处理程序,我们检索存储在 ViewState ,并将其显示在页面上: ```csharp protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (ViewState["myText"] != null) { string text = (string)ViewState["myText"]; Label1.Text = "Text retrieved: " + text; } } } ``` 通过这种方式,我们可以在页面上保留用户在文本框输入的,即使用户单击其他按钮或导航到其他页面。请注意,ViewState 可能会增加页面大小,并增加网络传输时间。因此,我们应该谨慎使用 ViewState,并仅在必要时使用它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值