<div id="4591" >
<input type="text" id="Title1" name="Title1" value="a" />
<input type="submit" name="button" value="Save" /> </div>
<div id="4592" >
<input type="text" id="Title2" name="Title2" value="a" />
<input type="submit" name="button" value="Save" /> </div>
<div id="4593" >
<input type="text" id="Title3" name="Title3" value="a" />
<input type="submit" name="button" value="Save" /> </div>
这是浏览器生成的html源代码的复制粘贴版本,它清楚地表明我正在页面上生成动态字段。 文本框中的名称是数据库中的字段。 如果按下其中一个保存按钮,我将如何将特定文本框名称和值发送到要更新的控制器操作。
答案 0 :(得分:10)
为您的提交按钮添加不同的名称:
<div id="4591">
<input type="text" id="Title1" name="Title1" value="a" />
<input type="submit" name="button4591" value="Save" />
</div>
<div id="4592">
<input type="text" id="Title2" name="Title2" value="a" />
<input type="submit" name="button4592" value="Save" />
</div>
<div id="4593">
<input type="text" id="Title3" name="Title3" value="a" />
<input type="submit" name="button4593" value="Save" />
</div>
然后在您的控制器操作中检查请求参数。您将看到一个带有所单击按钮名称的参数将被传递:
[HttpPost]
public ActionResult Index()
{
string id = Request.Params
.Cast<string>()
.Where(p => p.StartsWith("button"))
.Select(p => p.Substring("button".Length))
.First();
return View();
}