作者RexLou (Rex)
看板C_Sharp
标题Re: [问题] 用PHP的方式去写.net
时间Thu Nov 17 11:25:24 2011
※ 引述《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
1F:推 coldollsheep:恩 我以前PHP就是 写在一起 我也觉得比较好维护 11/17 11:57
2F:→ coldollsheep:感谢提供这个方法 11/17 11:57