1

T4MVCと名前付きパラメーターでエラーが発生しています。私はコントローラーを持っています:

public class ProductsController : Controller
{
    public virtual ViewResult List(int page = 1)
    {
        // foo.DoSomething()
    }
}

T4MVCはオーバーロードList()も作成しているようです。その結果、

myProductsController.List(3)

foo.DoSomething()を正しく実行します。しかし、呼び出す

myProductsController.List()

foo.DoSomething()を実行しません-T4MVCは空のList()オーバーロードを作成しました。

プロジェクトからT4MVCを削除しましたが、すべて正常に動作しています。しかし、私は本当にそれを使用できるようにしたいと思います-私はどこかに設定が欠けていますか?

4

1 に答える 1

3

更新:わかりました、私は今本当の修正があります。Codeplexリポジトリにチェックインされます。ここにアクセスすると、最新のT4MVC.ttを入手できます。それを次の公式ビルドに含める前に、試してみて、それが機能することを確認できれば素晴らしいと思います。ありがとう!


そうです、ここに問題があります。私はこれまでこのような状況に遭遇したことはありませんでした。短期間のクイックフィックスについては、T4MVC.ttから次のコードを削除してください(370行目あたり)。

<#foreach (var method in controller.ActionMethodsUniqueWithoutParameterlessOverload) { #>
        [NonAction]
        [<#= GeneratedCode #>, DebuggerNonUserCode]
        public <#=method.ReturnTypeFullName #> <#=method.Name #>() {
            return new T4MVC_<#=method.ReturnType #>(Area, Name, ActionNames.<#=method.ActionName #>);
        }
<#} #>

しかし、私は本当の修正を探す必要があります。通常、この生成は、アクションにパラメーターなしのオーバーロードがない場合に発生します。すべてオプションのパラメータを使用するアクションは、基本的にパラメータなしの場合として扱われる必要があることを検出する必要があります。

于 2010-08-15T20:44:05.730 に答える