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

好的,所以,我会尝试将其设为“哑”链接/按钮并处理通过 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 回答
3

这个答案没有实际意义,链接在表格中,稍后我会尝试再做一个答案...

为此使用 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 回答