blu*_*blu 6 c# asp.net-mvc jquery
我想用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>
Run Code Online (Sandbox Code Playgroud)
这有效,但我打算手动迭代控制器中的表单值:
[AcceptVerbs("Post")]
public ActionResult AddWidget(FormCollection form)
{
foreach (string s in form)
{
string t = form[s];
}
return RedirectToAction("ActionName");
}
Run Code Online (Sandbox Code Playgroud)
但是当我将用户发送回Controller中的Get Action时,我会发现我必须使用输入的值设置FormData,然后使用<%scripting迭代添加小部件.
在当前版本中有什么最好的方法(我相信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>
Run Code Online (Sandbox Code Playgroud)
在控制器中:
[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");
}
Run Code Online (Sandbox Code Playgroud)
你可以稍后再解决细节
(抱歉将 VB 与 C# 混合在一起,我是 VB 人)
归档时间: |
|
查看次数: |
7429 次 |
最近记录: |