ASP.NET MVC 表单提交数组和泛型集合的方法

时间:2021-07-11 19:26:42

ASP.NET MVC 表单提交数组和泛型集合的方法

2014-06-27十有三 0 浏览:4187.NET技术ASP.NET MVC

在ASP.NET MVC的网站项目中,一般表单提交都是提交单个字段,很少提交数组和集合形式的数据。本文介绍在ASP.NET MVC中,表单提交数组和泛型集合的方法。

在以往HTML中,提交form表单的数据都是根据输入控件的name属性来作为提交数据的命名区分,一个提交的数据字段对应一个name命名。在ASP.NET MVC中,我们可以获取表单中所提交的数组和泛型集合形式的数据,只要将表单中输入控件的name属性都设置一样,这样就可以提交数组和集合形式的数据。

这里建立一个测试项目来作为范例,使用VS2013建立一个MVC项目后,在默认Home控制器的Index视图模板中添加表单提交的代码。前台View视图代码如下(这里提交两组数据,一组是网址列表和备注信息列表,提交到ShowSubmitDate这个活动中):

@using (Html.BeginForm("ShowSubmitData", "Home"))
{
<div>
<h3>网址列表(数组获取提交数据,name=Urls)</h3>
<ul>
<li><input type="text" name="Urls" value="http://shiyousan.com" /></li>
<li><input type="text" name="Urls" value="http://shiyousan.com/sitemap.xml" /></li>
<li><input type="text" name="Urls" value="http://siyousan.com/p1" /></li>
<li><input type="text" name="Urls" value="http://siyousan.com/p2" /></li>
<li><input type="text" name="Urls" value="http://siyousan.com/p3" /></li>
</ul>
<hr />
<h3>备注信息列表(泛型集合获取提交数据,name=Remarks)</h3>
<ul>
<li><input type="text" name="Remarks" value="备注1:11111" /></li>
<li><input type="text" name="Remarks" value="备注2:22222" /></li>
<li><input type="text" name="Remarks" value="备注3:33333" /></li>
</ul>
<br />
<input type="submit" value="表单提交数据"/>
</div>
}

我们在后台建立一个ShowSubmitDate活动,建立好后再建立ShowSubmitDate的View(空的视图模板就可以)。后台控制器代码如下:

        /// <summary>
/// 显示提交的数据
/// </summary>
/// <param name="Urls"></param>
/// <param name="Remarks"></param>
/// <returns></returns>
public ActionResult ShowSubmitData(string[] Urls, List<string> Remarks)
{
foreach (string url in Urls)
{
Response.Write(url);
Response.Write("<hr/>");
}
foreach (string reamrk in Remarks)
{
Response.Write(reamrk);
Response.Write("<hr/>");
}
return View();
}

这里我们可以看到在ShowSubmitDate活动中,我们可以获取表单提交的数组和泛型集合数据。这里我们使用Response.Write将获取到的数据显示在界面上。要注意的是:活动中的方法参数名称要和表单中输入控件的name属性一致,这样才能正确获取表单提交上来的数组和泛型集合数据。

最终显示界面和结果如下:

1、默认Home控制器中的Index视图

ASP.NET MVC 表单提交数组和泛型集合的方法

2、提交表单后ShowSubmitDate视图显示的内容

ASP.NET MVC 表单提交数组和泛型集合的方法