AspNet MVC4 教学-23:Asp.Net MVC4 Display And Editor 模板技术高速应用Demo

A.创建Basic类型的项目.

B.在Model文件夹下,创建3个文件:

Role.cs:

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

namespace MvcEditorTemplatesTest.Models
{
    public enum Role
    {
        Admin, User, Guest
    }
}

Teacher.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcEditorTemplatesTest.Models
{
    public class Teacher
    {
        public string TeacherId 
        { 
            get
            {
                return "8888";
            }   
        }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public Role Role
        {
            get
            {
                return Role.Guest;
            }
            set
            {
                ;
            }

        }
    }
   

}

Student.cs:

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

namespace MvcEditorTemplatesTest.Models
{
    public class Student
    {
        public int StudentId 
        {
            get
            {
                return 88;
            }
            set
            {
                ;
            }
        }
        public string Remark
        {
            get
            {
                return "航大学生.";
            }
            set
            {
                ;
            }
        }
        public Role Role { 
            get
            {
                return Role.User;
            }
            set
            {
                ;
            }
   
        }
    }
}

C.创建HomeControlller.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcEditorTemplatesTest.Models;

namespace MvcEditorTemplatesTest.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View(new Teacher());
        }
        public ActionResult Student()
        {
            return View(new Student());
        }
        public ActionResult StudentDetails()
        {
            return View(new Student());
        }
        public ActionResult TeacherDetails()
        {
            return View(new Teacher());
        }
    }
}

D.创建View:

在Shared以下创建目录:EditorTemplates,然后在当中再创建两个文件:

Role.cshtml:

@model MvcEditorTemplatesTest.Models.Role
<div >
@Html.DropDownListFor(m => m, new SelectList(Enum.GetNames(Model.GetType()), "Guest"))
</div>

String.cshtml:

@model System.String
@Html.TextBox("", "比文字来自String编辑模板", new { style = "background:blue;width:220px" })

在Shared以下创建目录:DisplayTemplates,然后在当中再创建两个文件:

Role.cshtml:

@model MvcEditorTemplatesTest.Models.Role
<div >
@Enum.GetName(Model.GetType(),Model)
</div>
String.cshtml:
@model System.String
@Html.LabelFor(m=>m,Model,new { style = "background:red;width:220px" })
在Home以下创建4个文件:

Index.cshtml:

@model MvcEditorTemplatesTest.Models.Teacher

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Teacher</legend>


          <div class="editor-label">
            @Html.LabelFor(model => model.TeacherId)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.TeacherId)
            @Html.ValidationMessageFor(model => model.TeacherId)
        </div>


        <div class="editor-label">
            @Html.LabelFor(model => model.FirstName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.FirstName)
            @Html.ValidationMessageFor(model => model.FirstName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.LastName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.LastName)
            @Html.ValidationMessageFor(model => model.LastName)
        </div>

            <div class="editor-label">
            @Html.LabelFor(model => model.Role,"下面界面来自Role模板")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Role)
            @Html.ValidationMessageFor(model => model.Role)
        </div>      
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}
 <p>
           @Html.ActionLink("Go to get Teacher Details", "TeacherDetails")
        </p>
        <p>
           @Html.ActionLink("Go to Create Student","Student")
        </p>
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

Student.cshtml:

@model MvcEditorTemplatesTest.Models.Student

@{
    ViewBag.Title = "Student";
}

<h2>Student</h2>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Student</legend>

         <div class="editor-label">
            @Html.LabelFor(model => model.StudentId)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.StudentId)
            @Html.ValidationMessageFor(model => model.StudentId)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Remark)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Remark)
            @Html.ValidationMessageFor(model => model.Remark)
        </div>
            <div class="editor-label">
            @Html.LabelFor(model => model.Role,"下面界面来自Role模板")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Role)
            @Html.ValidationMessageFor(model => model.Role)
        </div>
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}
       <p>@Html.ActionLink("Go to get Student Details", "StudentDetails")</p>
        <p>
           @Html.ActionLink("Go to Create Teacher","Index")
        </p>
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
StudentDetails.cshtml:
@model MvcEditorTemplatesTest.Models.Student

@{
    ViewBag.Title = "StudentDetails";
}
<h2>StudentDetails</h2>
<fieldset>
    <legend>Student</legend>
    <div class="display-label">
        @Html.LabelFor(model => model.StudentId)
    </div>
    <div class="display-field">
      @Html.DisplayTextFor(model => model.StudentId)
    </div>
     <div class="display-label">
         @Html.DisplayNameFor(model => model.Remark)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Remark)
    </div>
     <div class="display-label">
         @Html.DisplayNameFor(model => model.Role)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Role)
    </div>
</fieldset>
TeacherDetails.cshtml:
@model MvcEditorTemplatesTest.Models.Teacher

@{
    ViewBag.Title = "TeacherDetails";
}

<h2>TeacherDetails</h2>

<fieldset>
    <legend>Teacher</legend>
     <div class="display-label">
         @Html.DisplayNameFor(model => model.TeacherId)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.TeacherId)
    </div>
    <div class="display-label">
         @Html.DisplayNameFor(model => model.FirstName)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.FirstName)
    </div>

    <div class="display-label">
         @Html.DisplayNameFor(model => model.LastName)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.LastName)
    </div>
    <div class="display-label">
         @Html.DisplayNameFor(model => model.Role)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Role)
    </div>
</fieldset>

F.在Site.css文件里的末尾添加:

#MyDDL
{
    width: 150px;
    height: 26px;
    background-color: #FF00FF;
}