我需要在List项的每个元素前面显示文本框。这很简单,我做到了。但现在我想将文本框中输入的值发布到控制器。我正在使用Ajax.Begin表单。可以帮助你。一些Code或fiddler可能真的很有帮助。
在下面的代码中,我有一个文本框,每个代码都是
testbox Code1 文本框Code2
用户可以在这些文本框中输入值,并可以使用PRess保存按钮。对于code1,文本框中给出的价格应该在表格中更新,依此类推以获取完整列表...
@using (Ajax.BeginForm("SavePriceList", "Billing", new AjaxOptions { OnSuccess = "MessageConfirmation" }))
{
<div id="DivFeeContent" style="float: left; width: 100%;">
@{
foreach (var obj in Model.objProcedureModel)
{
<div style="float: left; width: 100%;">
<div style="float: left; width: 20%;">
<input type="text" style="width: 95px;" />
</div>
<div style="float: left; width: 60%;">
@obj.ProcedureCode
</div>
</div>
}
}
</div>
}
Model::
public class ScheduleFeeModel
{
public ScheduleFeeModel()
{
objProcedureModel = new List<tblProcedureCode>();
}
public List<tblProcedureCode> objProcedureModel { get; set; }
}
Page Load::
public ActionResult Index()
{
Objmodel.objProcedureModel = ObjService.GetProcedureCode();
return View(Objmodel);
}
答案 0 :(得分:0)
这样做:
for (int i=0; i<Model.objProcedureModel.Count; i++)
{
<div style="float: left; width: 100%;">
<div style="float: left; width: 20%;">
<input type="text" style="width: 95px;" name="Price@(Model.objProcedureModel[i].ProcedureCode)" value=" " />
</div>
<div style="float: left; width: 60%;">
<input type="text" name="Code@(Model.objProcedureModel[i].ProcedureCode)" value="@Model.objProcedureModel[i].ProcedureCode"/>
</div>
</div>
}
并在行动中:
[HttpPost]
public ActionResult Index(ScheduleFeeModel model,FormCollection form)
{
foreach(var item in model.objProcedureModel)
{
string Price = form["Price"+item.ProcedureCode].ToString();
string Code = form["Code"+item.ProcedureCode].ToString();
}
}
答案 1 :(得分:0)
尝试列表模型绑定。 MVC具有列表的默认模型绑定 http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/