【问题标题】:How to get values of dynamically generated text box and make ajax request to controller in mvc4 and jquery?如何获取动态生成的文本框的值并向 mvc4 和 jquery 中的控制器发出 ajax 请求?
【发布时间】:2016-08-09 10:46:37
【问题描述】:

我有一张表,我在其中动态生成文本框并将模型值绑定到这些文本框。我也有一个按钮。我想在 Ajax 请求中发送动态生成的文本框值。我的代码如下。

@foreach (var group in Model.Groups)
{
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="dataTable tableHover">
        <tr>
            @foreach (var item in group.Items)
            {
                <th>@item.Label</th>
            }


        </tr>
        <tr>
            @foreach (var item in group.Items)
            {
                <td><input type="text" id="Value" value="@item.Value"></td>
            }

        </tr>


    </table>
            }
@foreach (var group in Model.Groups)
{
    <tr>
        @{ int k = 1; }
        @foreach (var item in group.Items)
                {
                    if (k == 1)
                    {
                <td scope="col">   <button type="button" class="btn btn-primary" id="SaveUpdate" onclick="updatemetaData('@item.upld_id,@item.Value');">Save</button></td>
                k = 0;
            }
        }
    </tr>
}

这是我发出 ajax 请求的 jquery 函数。

  function updatemetaData(docid) {
            $.ajax(
                 {
                     type: "GET",
                     data: { upld_id: docid },
                     dataType: "html",
                     url: '/documentVerification/updatedocDetails',
                     headers: {
                         'VerificationToken': forgeryId
                  },
                     success: function (data)
                     {
                         $('#GridDetails').html("");
                         $('#GridDetails').html(data);
                         $("#dialog-formdocumentdata").dialog('open');

                     }
                       , error: function (error)
                       {
                       }
                 });

        }

</script>

我想在 ajax 调用中发送动态生成的文本框的值。在下面的代码中,在所有情况下都会生成 2 个文本框。

@foreach (var item in group.Items)
            {
                <td><input type="text" id="Value" value="@item.Value"></td>
            }

在 jquery 中是否有可能实现这一点?提前谢谢你。

【问题讨论】:

  • 最好让它尽可能简单。您正在从控制器传递随机数。只需序列化模型(作为 JSON)并添加到 viewbag 对象。您可以将其存储到一个隐藏字段中,使用 jquery 可以轻松处理。
  • 是的,没错。只有两个文本框会生成 got it。
  • 请说出你的答案

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


【解决方案1】:

我找不到周围的电脑。请注意以下代码可能包含错误。

使用 nuget 导入 Newtonsoft Json 程序集。

在控制器中添加:

using Newtonsoft.Json;

ViewBag.JsonData = JsonConvert.SerializeObject(yourObjectContainingRandomNumbers); 

在视图中:

@Html.Hidden("inputID", Viewbag.JsonData)

将 jquery 引用移动到隐藏字段,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多