【问题标题】:Pass Textbox value from view to Controller on button click without using form in ASP.NET MVC 4在按钮单击时将文本框值从视图传递到控制器,而不使用 ASP.NET MVC 4 中的表单
【发布时间】:2019-01-18 19:58:48
【问题描述】:

单击提交按钮时,我必须将在文本框中输入的值传递给控制器​​类。我不想使用 Form 或者我没有此字段的模型类。如何实现? 以下是示例代码供您参考

<table style="width:100%;">
<tr>
<td style="text-align:center;font-weight:bold;width:95%;">My header</td>
<td>
<select>
<option value="Choose">Select</option>
<option value="val1">val1</option>
<option value="val2">val2</option>
<option value="val3">val3</option>
</select>
</td>

<td>
<input type ="text" id="searchField" name="searchFieldText">
</td>
<td>
<input type="submit" style="color:black;background-color:rgb(216, 214, 208)" value="Search" onclick="location.href='@Url.Action("ExecuteSearch", "MyController",new { <!--I want to pass the textbox value as param here-->})'" />
</td>
<td style="text-align:right;width:10%;">@Html.ActionLink("LOGOUT", "logout")</td>
</tr>
</table> 

提前致谢!!!

【问题讨论】:

  • 第一个问题:为什么?第二个问题:您是否考虑过使用 javascript?
  • @AndyRefuerzo 感谢您的提问。我想在 Controller 中获取输入的文本值并在我的数据库中搜索输入的值
  • 我查看了 javascript 但我无法从 Url.Action 方法调用 Javascript 函数

标签: html asp.net-mvc-4


【解决方案1】:

有多种选择可以实现相同的目标。你可以像这样获得 Jquery 的帮助:

<a href='@url.action("LOGOUT","logout")?someParameter=$('#searchField').val()' >Text for Link Name</a>

在控制器级别,您必须将字符串参数添加到注销方法。喜欢:

Public ActionResult Logout(string someParameter)
{
  //your code
}

使用 AJAX

下面的代码 sn-p 将使用 ajax 调用工作

<div class="row">
    <table style="width:100%;">
        <tr>
            <td style="text-align:center;font-weight:bold;width:95%;">My header</td>
            <td>
                <select>
                    <option value="Choose">Select</option>
                    <option value="val1">val1</option>
                    <option value="val2">val2</option>
                    <option value="val3">val3</option>
                </select>
            </td>

            <td>
                <input type="text" id="searchField" name="searchFieldText"/>
            </td>
            <td>
                <input type="submit" style="color:black;background-color:rgb(216, 214, 208)" value="Search" onclick="submitClick()" />
            </td>
            <td style="text-align:right;width:10%;">@Html.ActionLink("LOGOUT", "logout")</td>
        </tr>
    </table>
</div>

<script>
   function submitClick()
    {
        $.ajax({
            url: "../MyController/ExecuteSearch?someParameter=" + $('#searchField').val(),
            type: "GET",
            success: function (data) {
                debugger;
              // your custom code
            }
        });
    }
</script>

希望这会有所帮助!

【讨论】:

  • 感谢您的帮助!!但我想通过提交按钮而不是超链接来实现这一点。这是怎么做到的?
  • 好的,如果你想在不使用FORM的情况下使用提交按钮,那么你可以通过ajax调用来实现。如果您需要,我可以使用示例 ajax 调用更新答案。
猜你喜欢
  • 2020-03-12
  • 2021-01-27
  • 1970-01-01
  • 2017-06-29
  • 1970-01-01
  • 2018-01-17
  • 2023-03-14
  • 1970-01-01
  • 2016-08-21
相关资源
最近更新 更多