2

私はボタンで古典的な検索フィールドをやっています。ボタンにAjax.ActionLinkを使用していますが、ActionLinkに投稿されたテキストボックスの値を取得する方法がわかりません。私はこのように見えます:

<div class="input-append">
    <input type="text" id="Company_CompanyName" />
    @Ajax.ActionLink("search",
                     "CompanySearch",
                      new { searchString = "???" },
                            new AjaxOptions
                            {
                                HttpMethod = "GET",
                                InsertionMode = InsertionMode.Replace,
                                UpdateTargetId = "CompanySearchResults"
                            },
                            htmlAttributes: new { @class = "btn" })
</div>

<div id="CompanySearchResults"></div>

どこ ???は、テキストボックスから値を取得する方法がわからない場所です。どうすればよいですか。

更新1:ネストされたフォームです

元の投稿/質問で述べたように、これはネストされたフォームです。つまり、送信する外部フォームがあります。したがって、内部に送信を含むAjax.BeginForm()を作成すると、外部フォームの送信が呼び出されます。私は明らかにそれを避けたいです。

4

2 に答える 2

3

この答えは議論の余地がありますb/cリンクはフォーム内にあります、私は少しで別の答えを作ろうとします...

これにはajaxフォームを使用してください-リンクではありません。ポストバックに値を含めるフォームが必要です。

@using (Ajax.BeginForm("search", "CompanySearch",new AjaxOptions { HttpMethod = "GET", InsertionMode =      InsertionMode.Replace, UpdateTargetId = "SearchResults" }))
{    
<h1>Search</h1>
<input type="text" placeholder="Search Terms" name="SearchTerms"/>
 <input type="submit" name="Command" value="Search" />
}


<div id="SearchResults"></div>
于 2013-03-24T01:08:25.243 に答える
3

さて、私はそれを「ダム」リンク/ボタンにして、javascriptを介して渡されるすべての情報を処理してみます。次のようになります。

次のスクリプトには構文エラーがあると思いますので、ガイドラインとしてのみ使用してください。

<input type="text" id="Company_CompanyName" />
<a href="#" id ="CompanySearch" class="btn">Search</a>
<div id="CompanySearchResults"></div>


<script type="text/javascript">
$('#CompanySearch').click(function() {
    var searchTerm = $("#Company_CompanyName").text();
    $.ajax({
        url: @Url.Action("search","CompanySearch") ,
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        data: {'SearchTerm' : searchTerm}  // JSON.stringify(searchTerm),
        success: function(result) {
            $('#CompanySearchResults').html(result);
        }
      });
     return false;   
});
</script>
于 2013-03-24T17:35:33.507 に答える