2012-05-05 15 views
1

私のプロジェクトにT4MVCを適用しようとしています。私はajax検索ボックスを持っています、それはパラメータとして文字列qを取り込むHome/SearchQueryアクションを呼び出します。 T4MVCにその行を書き込むにはどうすればいいですか? Ajax.BeginFormへAjax.BeginForm( "SEARCHQUERY"、 "ホーム"、.... からパラメータを持つT4MVCとAjaxメソッド

(MVC.Home.SearchQuery(???)...

.cshtmlファイル

@using (Ajax.BeginForm("SearchQuery", "Home", /* <-----Convert to T4MVC Here */ 
     new AjaxOptions { 
      LoadingElementId = "loadingGif", 
      OnSuccess = "parseResults", 
      OnFailure = "searchFailed" 
     })) { 
    <input type="text" name="q" /> 
    <input type="submit" value="Search" /> 
    <img id="loadingGif" style="display:none" src="@Url.Content("~/content/images/loading.gif")" /> 
} 

<div id="searchResults" style="display: table"></div> 

答えて

2

あなたq形式の入力から送信されるので、あなただけの

@using (Ajax.BeginForm(MVC.Home.SearchQuery(), 
     new AjaxOptions { 
      LoadingElementId = "loadingGif", 
      OnSuccess = "parseResults", 
      OnFailure = "searchFailed" 
     })) { 
    <input type="text" name="q" /> 
    <input type="submit" value="Search" /> 
    <img id="loadingGif" style="display:none" src="@Url.Content("~/content/images/loading.gif")" /> 
} 
+0

私はあなたが何を意味するのか分かりません。 MVC.Home.SearchQuery()は構文エラーを発生させるため、SearchQueryシグネチャにはパラメータ(文字列q)があります。このように... [OutputCache(NoStore = true、VaryByParam = ""、Duration = 0)] [AcceptVerbs(HttpVerbs.Post)] パブリック仮想JsonResult SearchQuery(文字列q){ if(!Request.IsAjaxRequest() )nullを返します。 .... // more code – Tom

+0

そのシグネチャの不一致の構文エラー(文字列qに何を書き込むか)は、私の問題がある場所です。 – Tom

+1

T4MVCはパラメータなしで常に過負荷を生成します。したがって、@archilが示唆するものは何を行うべきでしょうか。やってみました? –

1

別の可能性のある答えを書くことができます:テンプレートを再生成

私はそれがちょっとばかだと知っていますが、私はテンプレートを使ってクラスを再生成するのを忘れてしまったからです(テンプレートを再生成する前にパラメータを持つ新しいメソッドにアクセスできます)。たぶん誰かがこの便利な発見でしょう。

関連する問題