2011-07-06 31 views
1

オートコンプリートをレンダリングするには、HtmlHelperという拡張子を作成する必要があります。このような何か:部分ビューをレンダリングするHtmlHelper拡張メソッドを作成するにはどうすればよいですか?

@Html.AutoCompleteFor(x => x.CustomerId); 

問題がHtml.RenderPartial(...)戻り無効ということですので、私のAutoCompleteFor方法も無効にする必要があります。ただし、@ Html.XはXがオブジェクトを返す場合にのみコンパイルされるため、Razorはコンパイルできません。

私は私ではなく、これを呼び出すことで、この問題を回避することができます知っている:

@{ Html.AutoCompleteFor(x => x.CustomerId); } 

をしかし、それは私のコードは、私は私のAN内部からPartialViewを返す必要が@Html.EditorFor

と矛盾見えるようになりますHtmlHelperの

いくつかの注意事項:

  • 私はあなたが知っているmighこれは何とかMVCパターンを破ると思っていますが、MVC自体がそうしています。 Html.EditorForはビューを見つけて返します。
  • デフォルトでjQuery-AutoCompleteを使用するには、foreign-keyプロパティが必要なので、私はそれを行うようにしています。 MVCに外部キーのプロパティにテンプレートを使用させるように指示することができませんでした。

答えて

1

Html.Partialに電話すると、ページに直接書き込むのではなくHelperResultオブジェクトが返されます。
その後、HelperResultを呼び出し元に返すことができます。

技術的には、ちょうどreturn nullでもかまいませんが、それは本当にばかげた考えです。

+0

それは機能します!私はHtml.RenderPartialと混同しました(...)ありがとう! –

関連する問題