自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET MVC3 從零開(kāi)始一步步構(gòu)建Web

開(kāi)發(fā) 前端
微軟更新速度一直都是很快,目前MVC4.0Beta已經(jīng)發(fā)布了,而我還在剛剛起步MVC3.0。本文是MVC的基礎(chǔ),構(gòu)建最簡(jiǎn)單的MVC項(xiàng)目。以后會(huì)陸續(xù)發(fā)布更新。

 微軟更新速度一直都是很快,目前MVC4.0Beta已經(jīng)發(fā)布了,而我還在剛剛起步MVC3.0。本文是MVC的基礎(chǔ),構(gòu)建最簡(jiǎn)單的MVC項(xiàng)目。以后會(huì)陸續(xù)發(fā)布更新。

開(kāi)發(fā)工具:VS2010+MSSQL2005,需要使用MVC3.0

環(huán)境配置

第一步:到官方網(wǎng)站下載MVC3,提供了簡(jiǎn)體中文。先安裝 AspNetMVC3ToolsUpdateSetup.exe,然后安裝AspNetMVC3ToolsUpdateVS11Setup.exe http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=1491

 

 

第二步:新建數(shù)據(jù)庫(kù),創(chuàng)建測(cè)試表。然后往表里insert些測(cè)試數(shù)據(jù)

  1. USE [yanComdb] 
  2. GO 
  3. /****** 對(duì)象:  Table [dbo].[NewsEntity]    腳本日期: 03/12/2012 22:03:59 ******/ 
  4. SET ANSI_NULLS ON 
  5. GO 
  6. SET QUOTED_IDENTIFIER ON 
  7. GO 
  8. CREATE TABLE [dbo].[NewsEntity]( 
  9.     [NId] [int] IDENTITY(1,1) NOT NULL, 
  10.     [Title] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NOT NULL, 
  11.     [Information] [text] COLLATE Chinese_PRC_CI_AS NULL, 
  12.     [Time] [datetime] NOT NULL CONSTRAINT [DF_NewsEntity_Time]  DEFAULT (getdate()), 
  13.  CONSTRAINT [PK_NewsEntity] PRIMARY KEY CLUSTERED  
  14.     [NId] ASC 
  15. )WITH (PAD_INDEX  = OFFIGNORE_DUP_KEY = OFF) ON [PRIMARY] 
  16. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 

構(gòu)建列表頁(yè)面

第一步:打開(kāi)VS,新建選擇MVC3 web應(yīng)用程序,輸入項(xiàng)目名稱(chēng)以及目錄

 

 

 

 

第二步:創(chuàng)建NewsEntity類(lèi),本文使用自己手寫(xiě)實(shí)體類(lèi)(沒(méi)有使用LinqtoSql,EF等orm)

  1. [TableAttribute("NewsEntity")]//這行很重要,因?yàn)閙vc框架默認(rèn)去db中找類(lèi)名復(fù)數(shù)的表名 
  2.     public class NewsEntity 
  3.     { 
  4.         [Key]//設(shè)置主鍵 
  5.         public int NId { get; set; } 
  6.  
  7.         [StringLength(100)]//設(shè)置驗(yàn)證信息 
  8.         [Required(ErrorMessage="標(biāo)題不能為空")] 
  9.         [DisplayName("標(biāo)題")] 
  10.         public string Title { get; set; } 
  11.  
  12.         [Required(ErrorMessage = "正文必須填寫(xiě)")] 
  13.         [DisplayName("正文")] 
  14.         public string Information { get; set; } 
  15.  
  16.         public DateTime Time { get; set; } 
  17.     } 

第三步:配置數(shù)據(jù)庫(kù)連接字符,注意此處的name對(duì)應(yīng)下一步中創(chuàng)建的類(lèi)名。

  1. <connectionStrings> 
  2. <add name="ProjectEntity" connectionString="Data Source=ip;Initial Catalog=yanComdb;Persist Security Info=True;User ID=;Password=" 
  3. providerName="System.Data.SqlClient" /> 
  4. </connectionStrings> 

第四步:創(chuàng)建ProjectEntity類(lèi),需要繼承DbContext

  1. public class ProjectEntity : DbContext 
  2.     { 
  3.         public DbSet<NewsEntity> NewsEntity { get; set; } 
  4.     } 

第五步:新建Controller,

  1. ProjectEntity PE = new ProjectEntity(); 
  2.         public ActionResult News() 
  3.         { 
  4.             try 
  5.             { 
  6.                 var list = PE.NewsEntity.ToList(); 
  7.                 return View(list); 
  8.             } 
  9.             catch (Exception e) 
  10.             { 
  11.                 throw e; 
  12.             } 
  13.         } 

第六步:在News上右鍵,新建視圖。勾選“創(chuàng)建強(qiáng)類(lèi)型視圖”,選擇NewsEntity,支架模塊選擇List

 

 

添加后,cshtml代碼如下:

  1. @model IEnumerable<TaiQiu.Models.NewsEntity> 
  2. @{ 
  3.     ViewBag.Title = "后臺(tái)新聞管理列表"
  4.     Layout = "~/Views/Shared/_MLayout.cshtml"
  5. <h2> 
  6.     新聞列表</h2> 
  7. <p> 
  8.     @Html.ActionLink("添加", "Create") 
  9. </p> 
  10. <table> 
  11.     <tr> 
  12.         <th width="50px"> 
  13.             ID 
  14.         </th> 
  15.         <th width="300px"> 
  16.             標(biāo)題 
  17.         </th> 
  18.         <th width="150px"> 
  19.             時(shí)間 
  20.         </th> 
  21.         <th> 
  22.         </th> 
  23.     </tr> 
  24.     @foreach (var item in Model) 
  25.     { 
  26.         <tr> 
  27.             <td> 
  28.                 @Html.DisplayFor(modelItem => item.NId) 
  29.             </td> 
  30.             <td> 
  31.                 @Html.DisplayFor(modelItem => item.Title) 
  32.             </td> 
  33.             <td> 
  34.                 @Html.DisplayFor(modelItem => item.Time) 
  35.             </td> 
  36.             <td> 
  37.                 @Html.ActionLink("編輯", "EditNews", new { id = item.NId  }) | 
  38.                 @Html.ActionLink("刪除", "DeleteNews", new { id=item.NId }) 
  39.             </td> 
  40.         </tr> 
  41.     } 
  42. </table> 

運(yùn)行后效果圖如下:

 

 

到此,第一個(gè)列表頁(yè)面就完成了(未涉及分頁(yè),后續(xù)會(huì)更新)。關(guān)于添加,修改,刪除也就很容易了。

添加Controller代碼:

  1. [HttpPost] 
  2.         [ValidateInput(false)] 
  3.         public ActionResult Create(NewsEntity news) 
  4.         { 
  5.             if (ModelState.IsValid) 
  6.             { 
  7.                 news.Time = DateTime.Now; 
  8.                 PE.NewsEntity.Add(news); 
  9.                 try 
  10.                 { 
  11.                     PE.SaveChanges(); 
  12.                     return RedirectToAction("News"); 
  13.                 } 
  14.                 catch (Exception e) 
  15.                 { 
  16.                     throw e; 
  17.                 } 
  18.  
  19.             } 
  20.             return View(); 
  21.         } 

添加頁(yè)面:

  1. @model TaiQiu.Models.NewsEntity 
  2. @{ 
  3.     ViewBag.Title = "添加新聞"
  4.     Layout = "~/Views/Shared/_MLayout.cshtml"
  5. <h2> 
  6.     添加新聞</h2> 
  7. <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
  8. <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
  9. <script src="@Url.Content("~/Scripts/kindeditor/kindeditor.js")" type="text/javascript"></script> 
  10. <script src="@Url.Content("~/Scripts/kindeditor/lang/zh_CN.js")" type="text/javascript"></script> 
  11. <script type="text/javascript"> 
  12.         var editor; 
  13.         KindEditor.ready(function (K) { 
  14.             editor = K.create('textarea[name="Information"]', { 
  15.                 allowFileManager: true 
  16.             }); 
  17.         }); 
  18. </script> 
  19. @using (Html.BeginForm()) 
  20.     @Html.ValidationSummary(true) 
  21.     <fieldset> 
  22.         <legend>News</legend> 
  23.         <div class="editor-label"> 
  24.             @Html.LabelFor(model => model.Title) 
  25.         </div> 
  26.         <div class="editor-field"> 
  27.             @Html.TextBoxFor(model => model.Title, new { style = "width:500px" }) 
  28.             @Html.ValidationMessageFor(model => model.Title) 
  29.         </div> 
  30.         <div class="editor-label"> 
  31.             @Html.LabelFor(model => model.Information) 
  32.         </div> 
  33.         <div class="editor-field"> 
  34.             @Html.TextAreaFor(model => model.Information, new { style="width:800px;height:400px"}) 
  35.             @Html.ValidationMessageFor(model => model.Information) 
  36.         </div> 
  37.         <p> 
  38.             <input type="submit" value="Create" /> 
  39.         </p> 
  40.     </fieldset> 
  41. <div> 
  42.     @Html.ActionLink("返回列表", "Index") 
  43. </div> 

修改頁(yè)面一樣,Controller稍微有點(diǎn)修改:

  1. [HttpPost] 
  2.         [ValidateInput(false)] 
  3.         public ActionResult EditNews(NewsEntity news) 
  4.         { 
  5.             if (ModelState.IsValid) 
  6.             { 
  7.                 news.Time = DateTime.Now; 
  8.                 PE.Entry(news).State = EntityState.Modified;//修改 
  9.                 PE.SaveChanges(); 
  10.                 return RedirectToAction("News"); 
  11.             } 
  12.             return View(news); 
  13.         } 

刪除Controller代碼:

  1. public ActionResult DeleteNews(int id) 
  2.         { 
  3.             var model = PE.NewsEntity.Find(id); 
  4.             PE.NewsEntity.Remove(model); 
  5.             PE.SaveChanges(); 
  6.             return RedirectToAction("News"); 
  7.         } 

小弟剛接觸MVC3,本文也只是本人學(xué)習(xí)中的一點(diǎn)點(diǎn)積累。有很多不好的地方,希望大家多提意思。

原文:http://www.cnblogs.com/zhxhdean/archive/2012/03/12/2392575.html

【編輯推薦】

  1. Node.js vs Opa: Web框架殺手
  2. 設(shè)計(jì)好脾氣的Web頁(yè)面
  3. Google Web App開(kāi)發(fā)指南之構(gòu)建優(yōu)秀的Web Apps
  4. 如何解決IndexedDB在webkit內(nèi)核下新舊版本的兼容問(wèn)題
  5. Google Web App開(kāi)發(fā)指南:交互設(shè)計(jì)
責(zé)任編輯:陳貽新 來(lái)源: zhxhdean的博客
相關(guān)推薦

2017-01-19 21:08:33

iOS路由構(gòu)建

2018-04-13 11:40:28

前端開(kāi)發(fā)路線圖前端工程師

2019-04-01 10:15:02

2019-03-05 14:09:27

Docker存儲(chǔ)容器

2019-07-09 15:23:22

Docker存儲(chǔ)驅(qū)動(dòng)

2018-12-24 10:04:06

Docker存儲(chǔ)驅(qū)動(dòng)

2010-03-04 16:28:17

Android核心代碼

2016-11-02 18:54:01

javascript

2017-12-25 11:50:57

LinuxArch Linux

2011-05-10 10:28:55

2024-08-30 08:30:29

CPU操作系統(tǒng)寄存器

2024-09-30 09:56:59

2024-10-30 16:01:31

2018-07-13 15:36:52

2020-12-24 11:19:55

JavaMapHashMap

2009-12-17 16:36:23

無(wú)線路由設(shè)置密碼

2018-06-11 15:30:12

2024-08-06 09:29:54

程序機(jī)器指令字符串

2018-04-23 14:23:12

2025-02-08 08:21:48

Java排序Spring
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)