我有一个简单的ASP MVC3 @Html.TextBox
,我用它来输入搜索条件。但是,我需要将值作为查询字符串附加到Ajax调用中的URL。我该怎么做?以下是视图中的HTML:
<div class="editor-field">
@Html.TextBox("searchString")
<span onclick='GetCompName(searchString);'>
<input type="image" src="@Url.Content("~/Content/Images/Filter.bmp")" alt="Filter" />
</span>
</div>
这是Ajax
function GetCompName(searchString) {
var request = $.ajax({
type: 'POST',
url: 'http://quahildy01/OrganizationData.svc/AccountSet?$select=AccountId,Name,neu_UniqueId&$filter=startswith(Name,' + searchString + ')',
dataType: 'html',
success: function (data) {
alert(data);
},
error: function (data) {
alert("Unable to process your resquest at this time.");
}
});
}
我还想将返回的值输出到另一个文本框中。如果有人知道如何做到这一点,那将是非常有帮助的。谢谢!
答案 0 :(得分:3)
你的代码的基本问题是onclick='GetCompName(searchString);
中的searchString总是字面意思是“serchString”,你必须在输入中的值中指定参数,例如$('.searchbox').val()
让你的javascript保持畅通无阻。
HTML代码
<div class="editor-field">
@Html.TextBox("searchString", null, new { @class = "serachbox" })
<span class="searchbox-trigger">
<input type="image" src="@Url.Content("~/Content/Images/Filter.bmp")" alt="Filter" />
</span>
</div>
设置事件范围的处理程序单击
$(document).ready(function() {
$('.searchbox-trigger').click(GetProgramDetails);
});
和你的ajax请求
function GetProgramDetails() {
var request = $.ajax({
type: 'POST',
url: 'http://quahildy01/OrganizationData.svc/AccountSet?$select=AccountId,Name,neu_UniqueId&$filter=startswith(Name,' + $('.searchbox').val() + ')',
dataType: 'html',
success: function (data) {
alert(data);
},
error: function (data) {
alert("Unable to process your resquest at this time.");
}
});
}