将整个列表发布到控制器

时间:2014-04-09 12:16:00

标签: asp.net asp.net-mvc-3 asp.net-mvc-4 c#-4.0

我需要在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);
        }

2 个答案:

答案 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/