Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NETMVC&;JQuery动态表单内容_C#_Jquery_Asp.net Mvc - Fatal编程技术网

C# ASP.NETMVC&;JQuery动态表单内容

C# ASP.NETMVC&;JQuery动态表单内容,c#,jquery,asp.net-mvc,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').

我想使用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>

但是,当我将用户发送回控制器中的Get操作时,我会想到,我必须使用输入的值设置FormData,然后使用迭代添加窗口小部件,我可能没有注意到这一点,但是,您是否需要通过表单操作将数据发回控制器?为什么不使用jquery进行ajax调用,将数据发布到控制器……或者更好的是使用web服务?异步发送数据,无需使用发送的数据值重建视图


如果这些值正在被使用并且不再使用,那么这种方法就可以了。但是,如果您计划持久化数据并通过视图中的一个视图来呈现它,那么您的模型应该真正支持数据结构。可能是模型上的
字典

我不是ASP.net开发人员,但我从PHP知道可以使用数组作为输入字段的名称

例:


然后,您可以迭代post变量小部件,就像它是一个值数组一样


不要乱搞动态命名变量等。

据我所知,问题是要在小部件中保留发布的值。
我认为在视图渲染过程中,您可以在服务器上渲染您不想填充的最大窗口。

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

您可以稍后再计算细节

(很抱歉把VB和C#混在一起,我是一个VB的家伙)

回想起来,我很确定我把这里的部分答案搞错了。在这些评论中看不到任何东西,请继续!
[AcceptVerbs("Post")]
public ActionResult AddWidget(FormCollection form)
{
    foreach (string s in form)
    {
        string t = form[s];
    }

    return RedirectToAction("ActionName");
}
<input type="text" name="widgets[]" />
<input type="text" name="widgets[]" />
<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>
[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");
}