2013-02-05 27 views
6

Khi tôi tạo ra bộ điều khiển và quan điểm với lệnh dưới đây của tôigiàn giáo mẫu sử dụng cshtml

scaffold controller <Entity> -force -repository -DbContextType "XXX" -Area YYY 

Nó tạo .aspx (mẫu web) trang thay vì .cshtml (dao cạo)

Làm thế nào tôi có thể thay đổi điều này hành vi mặc định. Tôi nghĩ rằng khi tôi lần đầu tiên tạo ra một dự án mới, nó đã yêu cầu tôi chọn công cụ xem mặc định và tôi đã chọn sai (biểu mẫu web).

Cũng có các mẫu T4 miễn phí hoặc rẻ tiền cho MVC 3 tạo ra khung nhìn đẹp hơn và chức năng hơn. tức là sử dụng webgrid/jQUery, v.v.

+0

Có thể hỏi: http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/ –

Trả lời

2

Cấu hình giàn giáo rộng giải pháp được lưu trữ trong scaffolding.config nằm trong cùng thư mục với tệp giải pháp.

Trên giai đoạn cài đặt MvcScaffolding gói phát hành init.ps tập lệnh (bạn có thể tìm thấy nó trong thư mục <packages folder>\MvcScaffolding.<version>\tools). Tập lệnh đếm số aspx, cshtmlvbhtml lượt xem và dựa trên những con số này đã quyết định xem khung hình nào sẽ được sử dụng. Dưới đây là một phần của logic này:

function InferPreferredViewEngine() { 
    # Assume you want Razor except if you already have some ASPX views and no Razor ones 
    if ((CountSolutionFilesByExtension aspx) -eq 0) { return "razor" } 
    if (((CountSolutionFilesByExtension cshtml) -gt 0) -or ((CountSolutionFilesByExtension vbhtml) -gt 0)) { return "razor" } 
    return "aspx" 
} 

# Infer which view engine you're using based on the files in your project 
$viewScaffolder = if ([string](InferPreferredViewEngine) -eq 'aspx') { "MvcScaffolding.AspxView" } else { "MvcScaffolding.RazorView" } 
Set-DefaultScaffolder -Name View -Scaffolder $viewScaffolder -SolutionWide -DoNotOverwriteExistingSetting 

Vì vậy, bạn có thể chuyển đổi xem scaffolder sử dụng lệnh sau:

Set-DefaultScaffolder -Name View -Scaffolder "MvcScaffolding.RazorView" -SolutionWide 
Set-DefaultScaffolder -Name View -Scaffolder "MvcScaffolding.AspxView" -SolutionWide 

Hoặc bạn có thể tự chỉnh sửa scaffolding.config tập tin và thay thế giá trị cho ScaffolderName thuộc tính trong thẻ:

<Default DefaultName="View" ScaffolderName="put here either MvcScaffolding.RazorView or MvcScaffolding.AspxView" /> 
+0

hoàn hảo, tha nks – Daveo

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