【问题标题】:Get textbox value for Ajax ActionLink in MVC 4 / Razor获取 MVC 4 / Razor 中 Ajax ActionLink 的文本框值
【发布时间】:2013-03-23 14:11:24
【问题描述】:

我正在做一个带有按钮的经典搜索字段。我正在为按钮使用 Ajax.ActionLink,但我无法弄清楚如何获取在 ActionLink 中发布的文本框值。我看起来像这样:

<div class="input-append">
    <input type="text" id="Company_CompanyName" />
    @Ajax.ActionLink("search",
                     "CompanySearch",
                      new { searchString = "???" },
                            new AjaxOptions
                            {
                                HttpMethod = "GET",
                                InsertionMode = InsertionMode.Replace,
                                UpdateTargetId = "CompanySearchResults"
                            },
                            htmlAttributes: new { @class = "btn" })
</div>

<div id="CompanySearchResults"></div>

在哪里???是,是我不知道如何从文本框中获取值的地方。我该怎么办?

更新 1:它是一个嵌套形式

正如我在原始帖子/问题中应该提到的,这是一个嵌套表单,即有一个外部表单要提交。因此,如果我在其中创建一个带有提交的 Ajax.BeginForm(),它将调用外部表单的提交。我显然想避免这种情况。

【问题讨论】:

    标签: asp.net-mvc-4 razor-2


    【解决方案1】:

    好的,所以,我会尝试将其设为“哑”链接/按钮并处理通过 javascript 传递的所有信息。它看起来像下面这样。

    我认为以下脚本中存在语法错误,因此仅将其用作指导。

    <input type="text" id="Company_CompanyName" />
    <a href="#" id ="CompanySearch" class="btn">Search</a>
    <div id="CompanySearchResults"></div>
    
    
    <script type="text/javascript">
    $('#CompanySearch').click(function() {
        var searchTerm = $("#Company_CompanyName").text();
        $.ajax({
            url: @Url.Action("search","CompanySearch") ,
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            data: {'SearchTerm' : searchTerm}  // JSON.stringify(searchTerm),
            success: function(result) {
                $('#CompanySearchResults').html(result);
            }
          });
         return false;   
    });
    </script>
    

    【讨论】:

      【解决方案2】:

      这个答案没有意义

      为此使用 ajax 表单 - 而不是链接。您需要一个表单来在回发中包含值,即。

      @using (Ajax.BeginForm("search", "CompanySearch",new AjaxOptions { HttpMethod = "GET", InsertionMode =      InsertionMode.Replace, UpdateTargetId = "SearchResults" }))
      {    
      <h1>Search</h1>
      <input type="text" placeholder="Search Terms" name="SearchTerms"/>
       <input type="submit" name="Command" value="Search" />
      }
      
      
      <div id="SearchResults"></div>
      

      【讨论】:

      • 这部分有效,但只是部分有效,因为这个表单嵌套在一个外部表单中,所以提交命令会调用外部表单。
      猜你喜欢
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多