2011-01-14 23 views
35

ASP.NET MVC cung cấp khả năng chọn 'Mẫu giàn giáo' trên đó chế độ xem mới được tạo sẽ dựa trên (Thêm chế độ xem> Tạo chế độ xem mạnh mẽ> Mẫu giàn giáo).Làm cách nào để tạo Mẫu Scaffold của riêng mình trong ASP.NET MVC 3?

Có thể tạo Mẫu giàn giáo của riêng bạn không? Và nếu vậy, làm thế nào?

+2

Tất nhiên, vì nó vừa được phát hành, số người có thể trả lời câu hỏi này chỉ giới hạn ở khoảng Scott Guthrie và Phil Haack. – Will

+1

Hoặc @Darin Dimitrov;) – jfar

+0

C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC 3 \ CodeTemplates \ AddController – davethecoder

Trả lời

33

ASP.NET MVC sử dụng mẫu T4. Here's an overview.

Sau đây là các bước sau:

  1. Trong các loại Package Manager Console: install-package mvc3codetemplatescsharp
  2. Chấp nhận tất cả những lời cảnh báo
  3. Thư mục CodeTemplates sẽ được thêm vào dự án của bạn có chứa các mẫu

Từ đây bạn có thể sửa đổi các mẫu hiện có hoặc thêm mẫu mới.

Hoặc nếu bạn muốn sửa đổi những điều trên toàn cầu, bạn có thể thực hiện việc này trong thư mục C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\.

+0

Liên quan/hậu quả của việc cài đặt này trên một dự án MVC4 với VS2012: http://stackoverflow.com/questions/6320883/what-is-and-where-can-i-find-mvctexttemplatehost –

11

Bạn có thể sử dụng T4 không có nuget của khóa học: Đặt thư mục vào thư mục gốc của trang web ứng dụng (dự án chứa các chế độ xem). Cấu trúc thư mục là quan trọng vì vậy nó phải

\ CodeTemplates \ AddView \ AspxCsharp \ MyTemplate.tt

Bạn có thể sao chép nội dung từ một trong những mẫu hiện tại nằm trong C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC 3 \ CodeTemplates \

Tiếp theo, xóa thuộc tính trên tệp TT có tên "Công cụ tùy chỉnh". Điều này phải để trống.

Sau đó nhấp chuột phải vào bất kỳ Tác vụ điều khiển nào và nói "Thêm chế độ xem" hoặc vì bộ điều khiển nằm trong một dự án riêng trong trường hợp của chúng tôi, hãy nhấp chuột phải vào thư mục Xem và nhấp "Thêm chế độ xem".

Từ menu thả xuống Nhấp vào "Tạo một Xem đánh mạnh" và sau đó nhập các loại sử dụng trong mục "View Data Class:"

Cuối cùng, trong mục "Xem Nội dung" thả xuống, chọn "MyTempate". Điều này sẽ hiển thị nếu bạn đã nhập chính xác các thư mục.

2

Hoặc, cho Visual Web Developer Express trên 32 -bit hệ thống, vị trí khác cho các tệp này là C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ VWDExpress \ ItemTemplates \ CSharp \ Web \ MVC 3 \ CodeTemplates

4

Trong Visual Studio 2012 với MVC 4, cách dễ dàng (cài đặt Gói Nuget) giúp bạn thiết lập không đầy đủ, vì gói Nuget đã lỗi thời (cập nhật lần cuối vào năm 2011 - có lẽ ngày được tạo).

Bạn phải sử dụng tương đương với câu trả lời Francis Shanahan, nhưng thay vào đó là con đường để sao chép mọi thứ từ là (64-bit):

C: \ Program Files (x86) \ Microsoft Visual Studio \ 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC 4 \ CodeTemplates

bạn:

  1. Thêm một tham chiếu đến Microsoft.Web.Infrastructure, mà bạn có thể tìm thấy trong Assemblies> Extensions.

  2. Sao chép này CodeTemplates thư mục (bao gồm cả các thư mục riêng của mình) vào thư mục gốc của dự án của bạn và Bao gồm nó trong dự án

  3. Bỏ qua lỗi biên dịch cho bây giờ (như không thể tìm thấy MvcTextTemplateHost)

  4. Đi qua Thuộc tính của từng tệp được thêm và xóa văn bản trong thuộc tính "Công cụ tùy chỉnh" của mỗi tệp. Khi bạn vào mũi tên mở rộng bên cạnh mỗi file sẽ biến mất (vì các tập tin sẽ không còn được tạo tại chỗ)

  5. Save All và xây dựng - lỗi biên dịch đi

Nếu lỗi biên dịch don 't đi xa - đặc biệt là nếu bạn đang nhìn thấy một lỗi trong một tập tin .cs tạo ra Visual Studio không thể tìm thấy, và một tập tin .tt - đóng Visual Studio, xóa thư mục tạm thời của bạn, và mở lại các giải pháp. Trong một trường hợp, tôi đã đi xa như vậy để khởi động lại trước khi vấn đề được xóa. Nó được gây ra bởi một tệp .cs được tạo từ một mẫu .tt mà Visual Studio vẫn đang cố gắng tự động tạo mã cho.

Bên cạnh đó, những cái tên của các tập tin .tt là một chút bối rối - đây là cách họ lập bản đồ:

GUI:

Rỗng khiển MVC
khiển MVC với đọc/ghi các hành động và quan điểm, sử dụng Entity Framework
khiển MVC với trống đọc/ghi các hành động
rỗng API điều khiển
khiển API với đọc/ghi các hoạt động, sử dụng Entity Framework
khiển API với trống đọc/viết hành động

file

CodeTemplates \ AddController của bản đồ tương ứng:

Controller.tt
ControllerWithContext.tt
Controller.tt
ApiController.tt
ApiControllerWithContext.tt
ApiController.tt

Có một nếu câu lệnh trong Controller.tt và ApiController.tt xử lý các chức năng hành động có/không đọc/ghi.

Đối với các chế độ xem, đặt tên trực quan ngoại trừ List.tt tạo Index.cshtml và Empty.tt được sử dụng cho bất kỳ Chế độ xem nào bên cạnh Tạo/Xóa/Chi tiết/Chỉnh sửa/Chỉ mục.

This question covers what properties you can use in the .tt templates.

mẫu .tt là mẫu Microsoft T4. T4 Template Syntax.

Các vấn đề liên quan