我正在使用按钮进行经典搜索字段。我正在使用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(),它将调用外部表单的提交。我显然想避免这种情况。
答案 0 :(得分: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>
答案 1 :(得分: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>