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

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

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

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

 

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

代码
<%@ 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接收数据并页面跳转。

代码
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

代码
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();
        }
    }
}

 

 

代码
<%@ 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>

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

posted @ 2010-05-11 17:40  大气象  阅读(5881)  评论(9编辑  收藏  举报
http://www.tianqiweiqi.com