Re: [問題] 用PHP的方式去寫.net

看板C_Sharp (C#)作者 (Rex)時間13年前 (2011/11/17 11:25), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《coldollsheep (加油加油^^)》之銘言: : 原文吃光 根本標題略為相關 藉此發問 : 我嘗試了一下asp.net mvc架構 : 在controller 到view的部分 暫時學得很粗淺 沒問題 : 但是進行到model的時候 : 線上教學表示需要在model上按右鍵 建立一個類別 : 如果名稱Movie為例 : 會產生一個 movie.cs的檔案 : 我裡面打的東西完全依照範例所打 內容如下 : --- : using System; : using System.Collections.Generic; : using System.Linq; : using System.Web; : namespace MvcApplication3.Models : { : public class Movie : { : public int ID { get; set; } : public string Title { get; set; } : public DateTime ReleaseDate { get; set; } : public string Genre { get; set; } : public decimal Price { get; set; } : } : public class MovieDBContext : DbContext : { : public DbSet<Movie> Movies { get; set; } : } : } : --- : 之後 進Web.config : 把這一段 : --- : <connectionStrings> : <add name="ApplicationServices" : connectionString="data source=.\SQLEXPRESS;Integrated : Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" : providerName="System.Data.SqlClient" /> : </connectionStrings> : --- : 改成這樣 : --- : <connectionStrings> : <add name="MovieDBContext" : connectionString="Data Source=|DataDirectory|Movies.sdf" : providerName="System.Data.SqlServerCe.4.0"/> : <add name="ApplicationServices" : connectionString="data source=.\SQLEXPRESS;Integrated : Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" : providerName="System.Data.SqlClient" /> : </connectionStrings> : 最後教學指示 需再建立一個controller : 建置如下 : --- : Controller name: MoviesController. (This is the default. ) : Template: Controller with read/write actions and views, using Entity : Framework. : Model class: Movie (MvcMovie.Models). : Data context class: MovieDBContext (MvcMovie.Models). : Views: Razor (CSHTML). (The default.) : --- : 但是我卻發現 我的Model class的下拉選單 並沒有 Movie這個類別 但是我明明建好了 : 很奇怪... 難得看到有人討論MVC (淚目 我是建議反正都使用MVC了 不如直接連資料庫吧 就可以不用自己建Model了 如果嫌連資料庫麻煩的話 我這說說我的做法 我會直接建一個Controller 然後把ViewModel寫在Controller裡面 Controller部分 namespace 專案名稱.Controllers { //把ViewModel建在這比較好改 public class MovieViewModel { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } } public class MovieController : BaseController { //建立一個內容為空的viewModel MovieViewModel viewModel = new MovieViewModel(); //資料處理, 隨便塞個值進去當範例 viewModel.ID = 1; viewModel.Title = "隨便你打的標題文字"; viewModel.DateTime = Datetime.Now; //時間是現在 viewModel.Genre = "C#"; viewModel.Price = 0; //免學費 return View(ViewModel); //把資料丟到view啦 } } View部分 因為會扯到MastrtPage 預設配置可能會有不同 我盡量寫的好懂點 首先 最上面的 <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Index.Master" XXXXXXXXXXXXXXXXXXXXXXXXXXXX %> 改成 <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Index.Master" Inherits="System.Web.Mvc.ViewPage<專案名稱.Controllers.MovieViewModel>" %> 這樣就可以抓到Model了 用強型別繼承 然後隨便找個地方 打上 <%=Model.ID %> 就會顯示1 其他的依此類推 我是大約一年前開始學寫程式 去年的時候我還抱著MVC1.0的PDF大陸翻譯版在燃燒 上面漏掉很多的部分.... 後來公司有CASE 我就改學php + asp 然後又被抓去寫.NET Window Form 寫市政府商業登記資料庫轉中央資料庫 在後面在重回.NET MVC寫外交部 每一種都有碰一些 但是待專案公司 實做的機會真的非常多 所以學的還算ok啦 我學的PHP也是盡量用MVC概念去分 個人覺得PHP轉.NET MVC非常適合阿~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.43.102

11/17 11:57, , 1F
恩 我以前PHP就是 寫在一起 我也覺得比較好維護
11/17 11:57, 1F

11/17 11:57, , 2F
感謝提供這個方法
11/17 11:57, 2F
文章代碼(AID): #1En7wcBU (C_Sharp)
文章代碼(AID): #1En7wcBU (C_Sharp)