这应该是一个简单的操作,此刻我的程序感觉不一样。当用户在我的视图中的字段中输入任意数量的文本时,他们应该能够单击放大镜,这会将他们发送的文本发送到控制器,然后控制器将调用 Web 服务并执行公司名称搜索。
下面是我创建的一个函数,它只是将两个参数发送到 ASP MVC 3 控制器。当我在 Chrome 调试器和控制器的 Visual Studio 中查看变量searchItem
时,我可以看到它是null
或者undefined
但是第二项总是通过的。
function GetCompDetails() {
var searchItem = $('#DRMCompanyId').val;
var request = $.ajax({
type: 'POST',
url: '@Url.Action("compSearch", "AgentTransmission")',
data:
{
searchFilter: searchItem,
url: location.protocol + '//' + location.host
},
dataType: 'html',
success: function (data) {
alert(data);
},
error: function (data) {
alert("Unable to process your resquest at this time.");
}
});
}
这是<div>
我正在使用的应该传递searchItem
参数的。如您所见,我尝试了两种不同的方法来创建文本框/输入区域。然而,两者最终都将参数传递为 is undefined
。
任何帮助将不胜感激。
<div class="M-editor-field">
<img src="@Url.Content("~/Content/Images/magnify.gif")" onclick="GetCompDetails()" />
@Html.TextBoxFor(model => model.BankName, new { id = "DRMCompanyId" })
@*@Html.EditorFor(model => model.DRMCompanyId)*@
@Html.ValidationMessageFor(model => model.DRMCompanyId)
</div>
这是我的控制器的方法签名。searchFilter
目前是undefined
每次但是url
参数工作正常。
[HttpPost]
public string compSearch(string searchFilter, string url)
{