c# – 动态地将字段添加到Razor表单
发布时间:2020-12-15 18:03:50 所属栏目:百科 来源:网络整理
导读:我有一个Razor表单,其中包含我想要动态添加项目的项目列表/表格.您可以从下拉列表中选择项目,单击“添加”,下拉列表中的项目将添加到列表中.然后,当我提交表单并且我的控制器的HttpPost方法可以处理输入时,我希望所有这些都通过POST发送. 有没有办法动态添加
我有一个Razor表单,其中包含我想要动态添加项目的项目列表/表格.您可以从下拉列表中选择项目,单击“添加”,下拉列表中的项目将添加到列表中.然后,当我提交表单并且我的控制器的HttpPost方法可以处理输入时,我希望所有这些都通过POST发送.
有没有办法动态添加字段,仍然能够接受它们作为HttpPost函数中的参数? 解决方法
第一个答案是正确的,因为您可以遍历表单集合以获取表单元素中动态插入字段的值.我只是想补充一点,你可以利用一些整洁的绑定.
下面的代码接受针对操作发布的动态文本框的动态列表.此示例中的每个文本框都与dynamicField具有相同的名称. MVC很好地将这些绑定到一个字符串数组中. 完整的.NET小提琴:https://dotnetfiddle.net/5ckOGu 示例代码(为清晰起见,代码段)动态添加示例字段 @using (Html.BeginForm()) { @Html.AntiForgeryToken() <div id="fields"></div> <button>Submit</button> } <div style="color:blue"><b>Data:</b> @ViewBag.Data</div> <script type="text/javascript"> $(document).ready(function() { var $fields = $('#fields'); $('#btnAddField').click(function(e) { e.preventDefault(); $('<input type="text" name="dynamicField" /><br/>').appendTo($fields); }); }); </script> 接受帖子中动态字段的操作的示例代码. [HttpPost] public ActionResult Index(string[] dynamicField) { ViewBag.Data = string.Join(",",dynamicField ?? new string[] {}); return View(); } 输出截图 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |