Asp.Mvc 2.0 사용자 등록 실례 설명 실현(1)
Asp.mvc 모델 은 전통 적 인 asp.net webform 방식 을 바 꾸 었 습 니 다.우 리 는 MVC 를 사용 하여 WEB 프로그램 을 개발 할 때 전통 적 인 WEBFORM 방식 의 사상 을 버 리 고 전통 적 인 WEBFORM 방식 의 사용자 가 단 추 를 끌 고 단 추 를 두 번 누 르 면 배경 에 해당 하 는 시간의 처리 코드 를 쓸 수 있 습 니 다.Asp.net mvc 는 aspx 페이지 만 있 고 배경 이 없 는 aspx.cs 페이지 입 니 다.
MVC 는 쉽게 말 하면 3 층 밖 에 없다.Controller,model,view.
View 는 표현 층 으로 aspx 페이지 로 간단하게 이해 할 수 있 습 니 다.
모델 은 실체 류 로 데이터베이스 테이블 에 대응 하 는 실체 류 로 간단하게 이해 할 수 있다.
Controller 는 VIEW 와 MODEL 층 사이 의 컨트롤 러 에 해당 합 니 다.Controller 의 역할 은 MODEL 층 에서 데 이 터 를 읽 고 VIEW 웹 페이지 에 데 이 터 를 표시 하 는 것 입 니 다.
이 절 은 각 사이트 에 필요 한 사이트 등록 기능 을 설명 하고 MVC 방식 으로 어떻게 실현 되 는 지 살 펴 본다.
1.준비 작업.
개발 도구:vs 2010,sqlserver 2005 데이터베이스
데이터베이스 사용자 정보 표:먼저 데이터베이스 에 사용자 정 보 를 저장 할 표를 만 듭 니 다.
--
CREATE TABLE[dbo].[UserInfo]
(
[UserName] [varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,---
[UserPwd] [varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,---
[Email] [varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL--
) ON[PRIMARY]
GO
ALTER TABLE[dbo].[UserInfo]ADDCONSTRAINT[PK__UserInfo__C9F2845707020F21]PRIMARYKEYCLUSTERED ([UserName])ON[PRIMARY]
GO
2.MODEL 만 들 기이어서 우 리 는 MODEL 층 을 추가 합 니 다.사용자 가 등록 할 때 사용자,비밀 번 호 를 입력 하고 비밀 번 호 를 확인 해 야 합 니 다.EMAIL 은 해당 하 는 MODEL 등록 클래스 를 만 듭 니 다.
/// <summary>
/// MODEL
/// </summary>
public class RegisterModel
{
/// <summary>
///
/// </summary>
[DisplayName(" ")]
public string UserName
{ get; set; }
/// <summary>
///
/// </summary>
[DisplayName(" ")]
public string UserPwd
{
get;
set;
}
[DisplayName(" ")]
public string ConfirPwd
{
get;
set;
}
/// <summary>
///
/// </summary>
[DisplayName(" ")]
public string Email
{
get;
set;
}
}
DisplayName 속성 은 필드 의 외부 디 스 플레이 이름 을 표시 합 니 다.속성의 별명 으로 이해 할 수 있 습 니 다.3.VIEW 페이지 만 들 기
VIEW 페이지 는 사용자 가 등록 한 페이지 입 니 다.
항목 의 View 폴 더 아래 오른쪽 단 추 를 누 르 면 보 기 를 추가 하고 다음 창 을 팝 업 합 니 다.
강 한 형식의 등록 페이지 를 추가 합 니 다.강 한 유형의 페이지 를 만 들 때 보기 에 대응 하 는 MODEL 류 를 선택 하 십시오.위의 그림 과 같은 빨간색 표 시 를 선택 하 십시오.여 기 는 registermadel 을 선택 하 십시오.
VIEW 페이지 를 추가 한 후 다음 과 같 습 니 다:강 한 유형의 페이지 계승 System.Web.Mvc.ViewPage<>
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcLogin.Models.RegisterModel>" %>
<!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> </title>
</head>
<body>
<div>
<br />
<p style="font-size:12px;color:red">
<%if (ViewData["msg"] != null)
{%>
<%:ViewData["msg"]%>
<%} %>
</p>
<br />
<%Html.BeginForm(); %>
<table>
<tr>
<td><%: Html.LabelFor(m => m.UserName) %></td>
<td> <%: Html.TextBoxFor(m => m.UserName) %></td>
</tr>
<tr>
<td> <%: Html.LabelFor(m => m.UserPwd) %></td>
<td> <%: Html.PasswordFor(m => m.UserPwd) %></td>
</tr>
<tr>
<td> <%: Html.LabelFor(m => m.ConfirPwd) %></td>
<td> <%: Html.PasswordFor(m => m.ConfirPwd)%></td>
</tr>
<tr>
<td> <%: Html.LabelFor(m => m.Email) %></td>
<td> <%: Html.TextBoxFor(m => m.Email) %></td>
</tr>
<tr>
<td> <input type=submit value=" " /></td>
<td></td>
</tr>
</table>
<%Html.EndForm(); %>
</div>
</body>
</html>
위의 Html 클래스 는 HTML 컨트롤 을 만 드 는 데 사 용 됩 니 다.Html.BeginForm()은 폼 컨트롤 을 만 드 는 데 사 용 됩 니 다.
Html.LabelFor 탭 LABEL 컨트롤 생 성
Html.PasswordFor 암호 텍스트 상자 컨트롤 생 성
Html.TextBox TEXTbox 컨트롤 을 만 드 는 데 사 용 됩 니 다.
Html.LabelFor(m=>m.Username)이것 은 페이지 에 LABEL 탭 을 만 드 는 데 사 용 됩 니 다.
m=>m.Username 은 lamda 표현 식 쓰기 입 니 다.m.Username 은 속성 을 표시 하 는 별명 입 니 다.
HTML 코드 생 성 은 다음 과 같 습 니 다:
4.컨트롤 러 만 들 기
우 리 는 UserController 를 만 들 고 그 안에 등록 방법 을 추가 합 니 다.다음 과 같 습 니 다.
publicActionResult Register()
{
return View();
}
VIEW 페이지 의 이름과 방법 이 같 습 니 다.이때 우리 가 Register 페이지 를 방문 할 때 URL 은 Register()방법 으로 이동 합 니 다.controller 대상 을 통 해 VIEW 페이지 에서 보 여줄 내용 을 되 돌려 줍 니 다.
페이지 효 과 는 다음 과 같 습 니 다:
그 중에서 user 는 controller,Register 표 에서 controller 의 방법 이름,즉 해당 하 는 페이지 를 표시 합 니 다.
5.sqlhelper
이상 의 준비 작업 이 끝 난 후에 저 희 는 가입 한 사용자 이기 때문에 데이터 베 이 스 를 추가 하 는 방법 이 있어 야 합 니 다.저 희 는 SQLHELP 류 를 만들어 데이터 베 이 스 를 조작 해 야 합 니 다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
namespace MvcLogin.Models
{
public class SqlHelper
{
//
readonly string conStr = "server=.;uid=sa;pwd=123;database=cztest;Min Pool Size=10;";
string strAdd = @"INSERT INTO dbo.UserInfo
( UserName, UserPwd, Email )
VALUES ( '{0}', -- UserName - varchar(20)
'{1}', -- UserPwd - varchar(20)
'{2}' -- Email - varchar(50)
)";
string strUserExist = @" SELECT * FROM dbo.UserInfo WHERE UserName='{0}' AND UserPwd='{1}'";
/// <summary>
///
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool AddUser(RegisterModel model)
{
strAdd = string.Format(strAdd, model.UserName, model.UserPwd, model.Email);
SqlConnection con = new SqlConnection(conStr);
con.Open();
SqlCommand cmd = new SqlCommand(strAdd,con);
int o = cmd.ExecuteNonQuery();
con.Close();
if (o>0)
{
return true;
}
return false;
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool ExistUser(RegisterModel model)
{
strUserExist = string.Format(strUserExist, model.UserName, model.UserPwd);
SqlConnection con = new SqlConnection(conStr);
con.Open();
SqlCommand cmd = new SqlCommand(strUserExist, con);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);
con.Close();
if (ds!=null&&ds.Tables[0].Rows.Count>0)
{
return true;
}
return false;
}
}
}
6.등록 방법 제출페이지 의 제출 단 추 를 누 르 면 사용 자 를 추가 합 니 다.
이 때 controller 의 추가 방법 을 실행 합 니 다.controller 클래스 에 등록 방법 을 추가 합 니 다.
/// <summary>
///
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
public ActionResult Register(Models.RegisterModel model)
{
bool result = false;
if (!new Models.SqlHelper().ExistUser(model))
{
result = new Models.SqlHelper().AddUser(model);
}
if (result)
{
//
FormsService.SignIn(model.UserName, false);
return RedirectToAction("index");
}
else
{
//
ViewData["msg"] = " ";
return View(model);
}
}
어떤 학생 들 이 controll 에 register 방법 이 두 개 있 습 니 다.제출 을 클릭 할 때 어떤 것 을 호출 할 지 판단 하 는 방법 이 있 습 니 다.이 방법 앞 에 httppost 요청 이 있 습 니 다.이 방법 은 post 요청 만 받 아들 이 는 것 을 나타 냅 니 다.기본 적 인 상황 에서 방법 은 get 입 니 다.제출 단 추 를 누 르 는 요청 은 POST 요청 에 속 합 니 다.이 등록 방법 은 모두 실 행 됩 니 다. 7.INDEX 페이지 만 들 기
사용자 가 추가 에 성공 하면 index 페이지 로 이동 합 니 다.index 페이지 는 비 강 한 유형의 페이지 입 니 다.페이지 에 환영 하 는 사용자 의 정 보 를 표시 합 니 다.이 DEMO 가 사용 하 는 form 인증 때문에 Forms Authentication 류 를 사 용 했 습 니 다.
마지막 파일 디 렉 터 리 는 다음 과 같 습 니 다.
이 사례 를 보고 사용자 등록 기능 이 이렇게 실현 되 기 어렵 지 않 은 것 같 지 않 습 니까?그러나 우리 도 직접 실천 해 야 앞으로 의 학습 에서 더욱 유연 하고 능숙 하 게 활용 하여 진정 으로 자신의 것 이 될 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Asp.Mvc 2.0 사용자 로그 인 및 로그아웃 기능 인 스 턴 스 설명 실현(2)이 절 은 ASP.MVC 2.0 의 사용자 로그 인과 로그아웃 기능 을 설명 하고 로그 인 을 먼저 말 한 다음 에 로그아웃 을 말한다.우리 시리즈 에서 말 하 는 사용자 로그 인 방식 은 모두 FORM 폼 검증 방...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.