asp.net-mvc - 使用 Html.ActionLink 传递文本框值

标签 asp.net-mvc

我有一个列出产品以及显示数量文本框和 Html.ActionLink 的表格。每个数量文本框都有一个从产品 ID 派生的唯一 ID。我认为这应该很简单,但我似乎无法弄清楚当用户单击链接时如何获取传递给我的 Controller 的关联文本框中的值。我的代码如下,任何帮助表示赞赏。

    <% foreach (var item in Model) { %>

    <tr>
        <td>
            <%= Html.Encode(item.Id) %>
        </td>
        <td>
            <%= Html.Encode(item.Description) %>
        </td>
        <td>
            <%= Html.Encode(String.Format("${0:F}", item.Cost)) %>
        </td>
        <td>
            <%= Html.TextBox(String.Format("quantity{0}", item.Id), "0") %>
        </td>
        <td>
            <%= Html.ActionLink("Add", "Add", new { id = item.Id, quantity="I want the quantity here?" })%>
        </td>
    </tr>

最佳答案

在 HTML 中没有办法做到这一点,因此在 ASP.NET MVC 中没有办法做到这一点。

有两种可能的解决方案可供您选择:

  • 使用 JavaScript,这样当用户编辑文本框时,您可以动态更改 anchor 标记的值以包含他们输入的内容。您不能为此使用 ASP.NET 路由,因为它在服务器上运行并且您需要客户端代码。
  • 做一个表单提交而不是一个链接。这是 HTML 中推荐的方式。当用户提交数据时,它应该是一个表单。将所有内容包装在一个表单标签中,然后将文本框和一个按钮放在其中。将表单的操作设置为您希望它发布到的 URL。
  • 关于asp.net-mvc - 使用 Html.ActionLink 传递文本框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856518/

    相关文章:

    asp.net-mvc - 为 MVC Mailer 伪造一个 HTTPContext

    asp.net-mvc - 在 razor foreach 上获取索引值

    c# - 从 AssemblyInfo.cs 获取程序集版本

    javascript - 在 angularjs 中找不到 url

    asp.net-mvc - 尽管遭到美国制裁,我如何将Docker Hub用于.Net Core项目?

    asp.net-mvc - 在 ASP.NET 标识框架中更改时刷新当前用户的角色?

    c# - DDD 与 EF Code First - 如何将它们放在一起?

    asp.net-mvc - 下载文件服务器错误: The handle is invalid?

    javascript - Asp mvc jquery - 就地编辑

    asp.net-mvc - 使用 ASP.NET MVC 查询字符串中的身份验证 token 对用户进行身份验证