在传递IEnumerable对象的视图中创建新对象

时间:2014-01-22 23:06:44

标签: c# jquery asp.net-mvc razor

我在尝试解决如何在我将视图传递给IEnumerable时如何创建新对象时遇到了一些痛苦。我正在模态jquery-ui窗口中创建新项目同一页。

<div class="form-group">
    @Html.LabelFor(model => model.Title)
    <div class="col-md-10">
        @Html.EditorFor( model =>model.Title)
        @Html.ValidationMessageFor(model => model.Title, "Please choose a title that is not empty or less than 3 symbols")
    </div>
</div>

所以这是我试图在主视图中实现的代码片段,我的js获取信息,但由于我的模型是一个集合,我无法访问剃刀视图中的编辑器选项。

这是我的js文件的一部分,我在上面列出的输入框中的项目的值不起作用因为我正在操作集合。我无法更改模型所以我需要一个快捷方式通过它

$.ajax({
    url: "/Course/Create/",
    type: "POST",
    data:{
        Title: $("#itemTitle").val(),
        CourseDescription: $("#itemDescription").val(),
        CourseCategory: $("#itemCategory").val()
      },

1 个答案:

答案 0 :(得分:0)

您应该传递一个视图模型,它将包含IEnumerable集合+您要提交的对象(具有标题,描述和类别属性)。

如果您无法更改要传递给视图的模型,则不应使用Html.EditorFor,而只需使用Html.Editor(这同样适用于您在其中使用的Html.LabelFor和其他Html扩展)。 当然,您需要将适当的名称参数(例如“itemTitle”)传递给符合JS代码中使用的扩展名。