将ASP MVC3文本框值传递给Ajax调用

时间:2013-03-19 15:47:18

标签: ajax asp.net-mvc asp.net-mvc-3 jquery query-string

我有一个简单的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.");
        }
    });
}

我还想将返回的值输出到另一个文本框中。如果有人知道如何做到这一点,那将是非常有帮助的。谢谢!

1 个答案:

答案 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.");
        }
    });
}