2016-01-25 88 views
0

我想将文本框的值发送到Action Method来搜索技术,以获取Action中的文本框的值。如何在Action中获取文本框的值在ASP.NET MVC 5

我有下面的代码: -

@Html.TextBox("technologyNameBox", "", new { id = "technologyName", @class = "form-control", @placeholder = "Search For Technology" }) 

<span class="input-group-btn" style="text-align:left"> 
     <a class="btn btn-default" id="searchTechnology" 
     href="@Url.Action("SearchTechnology", "Technology", 
     new {technologyName="technologyName",projectId=ProjectId })"> 
      <span class="glyphicon glyphicon-search "></span> 
     </a> 
</span> 

问题: - 如何让文本框 “technologyNameBox” 的值在行动?

请帮我一把。提前致谢!

回答

1

在指导用户之前,您必须通过JavaScript将值附加到URL。使用jQuery(因为一般都自带ASP.NET封装),它可能看起来像这样(与空值或查询字符串参数手册条件检查的好一点):

$('#searchTechnology').click(function (e) { 
    e.preventDefault(); 

    var url = '@Url.Action("SearchTechnology", "Technology", new { projectId=ProjectId })'; 
    var technologyName = $('#technologyName').val(); 

    if (technologyName.length < 1) { 
     // no value was entered, don't modify the url 
     window.location.href = url; 
    } else { 
     // a value was entered, add it to the url 
     if (url.indexOf('?') >= 0) { 
      // this is not the first query string parameter 
      window.location.href = url + '&technologyName=' + technologyName; 
     } else { 
      // this is the first query string parameter 
      window.location.href = url + '?technologyName=' + technologyName; 
     } 
    } 

    return false; 
}); 

的想法是,当用户单击该链接,您将获取在input中输入的值并将其作为查询字符串参数追加到URL中。然后将用户重定向到新的修改的URL。

+0

不使用jQuery不能完成吗? –

+0

@shivanisurana:当然。这个概念仍然是一样的。响应链接的点击事件,获取“输入”的值,将用户引导至新的URL。这个代码只在两个地方使用jQuery,可以很容易地修改。 – David

+0

好的,谢谢,我会试试这个。 –

相关问题