2013-04-22 146 views
0

这应该是一个简单的操作,此时我的程序感觉不一样。当用户在我的视图中输入任意数量的文本时,他们应该能够点击放大镜,将它们发送到控制器的文本发送到控制器,然后调用Web服务并执行公司名称搜索。jQuery/Ajax将未定义参数传递给ASP MVC控制器

下面是我创建的一个函数,它只是向ASP MVC 3控制器发送两个参数。当我在控制器中的Chrome调试器和Visual Studio中查看变量searchItem时,我可以看到它是nullundefined,但第二项始终没有问题。

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) 
    { 

回答

1

您有一个错误在你的JavaScript,在你的第一行,你忘了pernthesis

function GetCompDetails() { 
    var searchItem = $('#DRMCompanyId').val(); // You need to add parenthesis if you call a function 
    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."); 
     } 
    }); 
} 
+0

哈,好,谢谢。想象它会是这样的(过了漫长的一天......) – NealR 2013-04-22 22:28:15

+0

好吧,完美!乐于帮助。如果答案对你有帮助,不要忘记接受答案和/或祝好。 – Kenneth 2013-04-22 22:29:06

相关问题