我有一个提交食谱的网页。有5个成分领域。如果配方需要超过5种成分,则有一个“添加另一种成分”的按钮,一些java脚本会加载另一种成分输入供他们使用。
我不确定如何将这些数据正确地发布到我的后端,即MVC4 / C#。
我可以给他们所有相同的id =成分并将它们收集为字符串ingrdient []吗?或者当输入数量可以改变时,获得表格输入的最佳做法是什么?
感谢。
答案 0 :(得分:3)
如果您使用方括号给出相同的名称,则在提交表单时,您应该能够将它们作为数组到达。
<input type="text" name="data[]" value="">
答案 1 :(得分:2)
好的,这是一个示例: 您可以使用此方法:
<div class="editor-field">
<input type="text" name="MyModelArray[0].Sugar" value="" />
<input type="text" name="MyModelArray[1].Tea" value="" />
<input type="text" name="MyModelArray[0].Sugar" value="" />
<input type="text" name="MyModelArray[1].Tea" value=""/>
</div>
<p>
<input type="submit" value="Create" />
</p>
现在您可以使用以下命令在控制器中获取此信息:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(List<Ingredient> MyModelArray) //Put a breakpoint here to see
{
return View();
}
[HttpPost]
public ActionResult About(List<string> MyStringArray) //Use this if you don't want a model
{
return View();
}
}
public class Ingredient
{
public string Sugar { get; set; }
public string Tea { get; set; }
}
}
答案 2 :(得分:0)
就MVC4而言,我不确切知道什么是最好的方法,但你绝对可以给所有输入同名,并且在提交之后,你应该能够在提交时检索它们。服务器端只需查看HttpContext.Request.Params
对象。