0
这应该是一个简单的操作,此时我的程序感觉不一样。当用户在我的视图中输入任意数量的文本时,他们应该能够点击放大镜,将它们发送到控制器的文本发送到控制器,然后调用Web服务并执行公司名称搜索。jQuery/Ajax将未定义参数传递给ASP MVC控制器
下面是我创建的一个函数,它只是向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.");
}
});
}
这里是我使用应经过searchItem
参数<div>
。正如你所看到的,我尝试了两种不同的方法来创建文本框/输入区域。然而,两者都通过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)
{
哈,好,谢谢。想象它会是这样的(过了漫长的一天......) – NealR 2013-04-22 22:28:15
好吧,完美!乐于帮助。如果答案对你有帮助,不要忘记接受答案和/或祝好。 – Kenneth 2013-04-22 22:29:06