将动态生成的文本框值传递给控制器.净MVC
本文关键字:控制器 MVC 值传 动态 文本 | 更新日期: 2023-09-27 18:15:44
我有一些表单,我想在+按钮单击上自动生成新的文本框,然后我想将其提交给候选人控制器中的CandidateRegister动作方法。
@model SourceTreeITMatchmaking.Models.CandidateRegisterViewModel
<<p> 候选人视图/em> @using (Html.BeginForm("CandidateRegister", "Candidates"))
{
<div id="myTechnologies">
<div class="row">
<div class="col-sm-6" style="padding-left: 0;">
@Html.TextBoxFor(m => m.SelectedMyTechnologies.Technology, new {@class="form-control", placeholder="C#, Java, Sql Server..."})
</div>
</div>
</div>
<hr class="mt60">
<div class="clearfix">
<input type="submit" class="btn btn-default btn-large pull-right" value="Register candidate!">
</div>
}
jQuery函数添加新的文本框(+)按钮点击
$("#add-technology-candidate").click(function () {
var firstDiv = $(' <div class="row"> <div class="col-sm-6" style="padding-left: 0;"> ' +
' <input type="text" class="form-control" placeholder="C#, Java, Sql Server..." /> </div>');
$("#myTechnologies").append(firstDiv.append(deleteButton));
});
我的CandidateRegisterViewModel的一个属性,我用于强类型模型
public class CandidateRegisterViewModel
{
public SelectedMyTechnologies SelectedMyTechnologies { get; set; }
}
/我在CandidateRegisterViewModel中使用的属性/
public class SelectedMyTechnologies
{
public List<string> Technology { get; set; }
}
长话短说->我想在(#add-technology-candidate)按钮上生成文本框,然后将用户输入的数据作为列表传递给我的控制器。正如我的代码现在,我只能从第一个文本框(不是动态生成的)传递数据。我应该如何改变jQuery方法来支持这两种类型?
因为你的属性是List<string>
,你可以给动态创建的文本框一个与属性相匹配的name属性
<input type="text" name="SelectedMyTechnologies.Technology" ... />
注意,这只适用于string
或值类型的集合。对于复杂对象的集合,您需要按照这个答案