2

私はアクションメソッドを持っています

[HttpPost]
        public virtual ActionResult Search(string searchTerm)
...

そしてフォーム

@using (Html.BeginForm(MVC.Products.Search(), FormMethod.Post))
        {
            <input id="searchBox" name="searchTerm" type="text" />
            <input type="submit" value="Search" />
        }

しかし、これは機能しません。Search() には searchTerm パラメーターが必要ですが、それを渡す方法がわかりません。

4

2 に答える 2

2

null を渡すことができます:

@using (Html.BeginForm(MVC.Products.Search(null), FormMethod.Post))
于 2012-05-01T12:23:12.723 に答える
0

T4MVC ProductsController.generated.cs ファイルをチェックして、パラメーターをまったく使用しない Search() メソッドを探します。そこには見つからないように聞こえますが、David Ebbo が上に投稿したように、ほとんどの状況で生成されているはずです。ここに貼り付けたメソッドが仮想として装飾されていることを考えると、特に奇妙です。これは、以前に T4MVC によってタグ付けされたときに発生した可能性があります。

したがって、これを修正するには、VS IDE で T4MVC ファイルを右クリックし、[カスタム ツールの実行] を選択して、*.generated.cs ファイルを削除して再生成してみてください。

zero-param メソッドはまだ生成されていないが、他のメソッドは生成されている場合は、Search メソッドのどこが異常なのかを調べてください。T4MVC でサポートされていないことを行っている可能性があります。これは、今日、文字列を返すメソッドで発生しました。In MVC, how do I return a string result?に従って、null パラメーター ハックを使用するか、ContentResultを返す必要がありました。これは、David がT4MVC とパラメーターを使用した Ajax メソッドで親切に参照したものです。

于 2012-05-31T00:24:21.713 に答える