6

以下のコマンドでコントローラーとビューを生成すると

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

.cshtml(かみそり)の代わりに.aspx(Webフォーム)ページを生成します

このデフォルトの動作を変更するにはどうすればよいですか。私が最初に新しいプロジェクトを作成したとき、デフォルトのビューエンジンを選択するように求められ、間違ったもの(Webフォーム)を選択したと思います。

また、MVC 3用の無料または安価なT4テンプレートがあり、より優れた、より機能的なビューを生成します。つまり、webgrid/jQUeryなどを使用します。

4

1 に答える 1

2

ソリューション全体のスキャフォールダー構成はscaffolding.config、ソリューションファイルと同じフォルダーにある場所に保存されます。

インストール段階で、MvcScaffoldingパッケージはinit.psスクリプトを起動します(<packages folder>\MvcScaffolding.<version>\toolsディレクトリにあります)。スクリプト数aspx、ビュー、cshtmlおよびvbhtmlこれらの数に基づいて、使用するビュースキャフォールダーが決定されます。このロジックの一部を次に示します。

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

したがって、次のコマンドを使用してビュースキャフォールダーを切り替えることができます。

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

または、ファイルを手動で編集して、タグの属性のscaffolding.config値を置き換えることができます。ScaffolderName

<Default DefaultName="View" ScaffolderName="put here either MvcScaffolding.RazorView or MvcScaffolding.AspxView" />
于 2013-02-13T18:38:12.820 に答える