来自View的表数据未发布到控制器

时间:2014-05-30 11:31:25

标签: asp.net asp.net-mvc-4 view controller ajaxform

以下是我的观点的一部分

@using (Ajax.BeginForm("SaveScheduleType", "Users", new {   }, new AjaxOptions {HttpMethod = "POST", UpdateTargetId = "", LoadingElementId = "imgloaderIndex" }, new { id = "addUserForm" }))
{  
    <table id="tblScheduleType" cellpadding="0" cellspacing="0" class="edit popuptable" style="margin-bottom: 0px;">
        @{ 
            if (Model.DataList != null && Model.DataList.Count > 0)
            {
                foreach (var sch in Model.DataList)
                {
            <tr>
                <td class="lblForTdName" width="250px">@sch.Name
                </td>
                <td class="ctrlForTdName" style="display: none;">
                    <input type="text" value="@sch.Name" />
                </td>
                <td class="lblForTdDesc" width="250px">@sch.Description
                </td>
                <td class="ctrlForTdDesc" style="display: none;">
                    <input type="text" value="@sch.Description" />
                </td>
                <td class="lblForTd">
                    <a class="editScheduleType">Edit</a>
                </td>
                <td class="ctrlForTd" style="display:none;">
                    <a class="updateScheduleType">Update</a>
                    <a class="cancelScheduleType">Cancel</a>
                </td>
                <td>
                    <a class="deleteScheduleType">Delete</a>
                </td>

            </tr>
                }
            }
        }
    </table>
<br clear="all" />
 <input type="submit" id="" value="SAVE" />
 <br clear="all" />
}

正如您所见,我在视图中以表格的形式提供数据。单击提交按钮,我希望表中的数据从视图传递到控制器,但我没有获取控制器内的数据。我检查了一个断点。

这是控制器:

 [HttpPost]
    public ActionResult SaveScheduleType(Response<ScheduleType> scheduleType)
    {
        return View();
    }

1 个答案:

答案 0 :(得分:0)

您的所有文本字段都没有name属性。您必须在响应中使名称与属性匹配才能生效,包括对具有复杂对象的模型使用点表示法。

为了使其更难,您需要使用数组语法呈现名称,例如:

<input type="text" name="DataList[0].Name" />

为了让它正确回发。