【问题标题】:How to pass value of textbox from anchor tag to controller method in asp.net mvc如何将文本框的值从锚标记传递到asp.net mvc中的控制器方法
【发布时间】:2014-01-02 16:20:13
【问题描述】:

我想将文本框的值从锚标记传递到控制器方法,基本上我想将它从 javascript 函数传递到控制器方法。我无法理解如何将值传输到搜索和当前页面到控制器。下面是一个代码sn-p请帮忙解决..谢谢..

<script>
  $(document).ready(function () {
            $('#Button1').click(function () {
                $.ajax({
                    type: 'POST',
                    contentType: "application/json; charset=utf-8",
                    url: 'Home/getUsersList',
                data: "{'searchString':'" + document.getElementById('searchString').value + "'}",
                    async: false,
                    success: function (response) {
                        $('#showData').html(response)
                    },
                    error: function () { alert("error"); }
                });
            });
        });
</script>

<body>
    @Html.TextBox("searchString")
</body>

<a class="@(p == ViewBag.CurrentPage ? "current" : "")" href="@Url.Action("getUsersList", "Home", new { page = p })">@p</a>

[HttpPost]
public ActionResult getUsersList(string searchString)
 {
         int page=1;
 }

【问题讨论】:

  • 您的请求是否收到 404 错误?您的控制器操作需要 2 个参数 int page, string searchString,而您只发送 searchString。这很可能会导致 404 错误。
  • 我注意到一件事..您对“ViewUser”的操作是它试图在 HomeController 类上调用的方法...为什么向我们展示“getUsersList”?
  • 错误地我写了ViewUser,我只想传输searchString,页面将是局部变量。但是来自Anchor链接标签。我已经编辑了我的代码。

标签: c# javascript jquery asp.net-mvc asp.net-mvc-3


【解决方案1】:

试试这个而不是@Html.TextBox("searchString")

<input type="text" id="searchString" value="@zyz" />

只需这样做

$('#searchString').val()

【讨论】:

    【解决方案2】:

    起初我认为你的 URL 参数是错误的,让它看起来像这样,以便 MVC 将使用路由表来处理它。同时添加dataType 参数。

    ...
    url: '@Url.Action("GetUserList", "Home")',
    dataType: "json",
    ...
    

    如果仍未解决,请发布有关您的问题的更多信息(例如请求状态(404?)或任何 .NET 错误)

    【讨论】:

    • 感谢 Marthijn.. 我想知道如何将参数直接从锚链接传递给控制器​​方法。
    【解决方案3】:

    在数据部分通过搜索字符串名称传递这个。

        <script>
      $(document).ready(function () {
                $('#Button1').click(function () {
                    $.ajax({
                        type: 'POST',
                        contentType: "application/json; charset=utf-8",
                        url: 'Home/getUsersList',
                    data: "{'searchString':'" + $('#searchString').val() + "'}",
                        async: false,
                        success: function (response) {
                            $('#showData').html(response)
                        },
                        error: function () { alert("error"); }
                    });
                });
            });
    </script>
    

    我认为这对你有用,或者首先将文本框的值保存在其他变量中,然后传入数据,然后在 getUsersList 控制器方法中接收

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      相关资源
      最近更新 更多