c# - ASP.NET MVC 和 JQuery 动态表单内容

标签 c# jquery asp.net-mvc

我想使用 JQuery 将字段动态添加到 ASP.NET MVC 表单。

例子:

<script language="javascript" type="text/javascript">
    var widgets;

    $(document).ready(function() {
        widgets = 0;
        AddWidget();
    });

    function AddWidget() {
        $('#widgets').append("<li><input type='text' name='widget" + widgets + "'/></li>");
        widgets++;
    }
</script>

<ul id="widgets">
</ul>

这可行,但我打算在 Controller 中手动迭代表单值:

[AcceptVerbs("Post")]
public ActionResult AddWidget(FormCollection form)
{
    foreach (string s in form)
    {
        string t = form[s];
    }

    return RedirectToAction("ActionName");
}

但是当我将用户发送回 Controller 中的 Get Action 时,我想到了我将不得不使用输入的值设置 FormData,然后使用 <% 脚本迭代添加小部件。

在当前版本中执行此操作的最佳方法是什么(我相信是 5 个)?

最佳答案

我的解决方案可能是这样的(伪代码):

<script language="javascript" type="text/javascript">
    var widgets;

    $(document).ready(function() {
        widgets = 0;
        <% for each value in ViewData("WidgetValues") %>
             AddWidget(<%= value %>);
        <% next %>
    });

    function AddWidget( value ) {
        $('#widgets').append("<li><input type='text' name='widget" + widgets + 
                             "'>" + value + "</input></li>");
        widgets++;
    }
</script>

<ul id="widgets">
</ul>

在 Controller 中:

[AcceptVerbs("Post")]
public ActionResult AddWidget(FormCollection form)
{
    dim collValues as new Collection;
    foreach (string s in form)
    {
        string t = form[s];
        collValues.add( t )
    }
    ViewData("WidgetValues") = collValues;
    return RedirectToAction("ActionName");
}

你可以稍后制定细节
(很抱歉将 VB 与 C# 混合使用,我是 VB 人)

关于c# - ASP.NET MVC 和 JQuery 动态表单内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/463644/

相关文章:

c# - MVC 5 EF6 工作单元和存储库模式

c# - ThreadLocal 并等待

C# 在屏幕上查找图像匹配

c# - 无法启动应用程序,KernelBase.dll 错误

javascript - 添加和删​​除类不同的元素

asp.net-mvc - datatype.text 验证什么?

C#对象/对象

javascript - JQuery AJAX 脚本不保存

javascript - 获取原始图像尺寸以使用canvas IE进行裁剪和预览

.net - 将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?