Asp.net mvc 4 在MVC中,当我发布表单时,没有发布模型数据,我可以看到使用inspect元素正确命名的输入字段。寻求建议

Asp.net mvc 4 在MVC中,当我发布表单时,没有发布模型数据,我可以看到使用inspect元素正确命名的输入字段。寻求建议,asp.net-mvc-4,post,model-view-controller,model,controller,Asp.net Mvc 4,Post,Model View Controller,Model,Controller,在MVC中,当我发布表单时,没有发布模型数据,我可以看到使用inspect元素正确命名的输入字段。请帮帮我 下面是我的代码 Using (Html.BeginForm("_saveActivities", "Projects", FormMethod.Post, New With {.name = "frmActivity", .id = "frmActivity", .enctype = "multipart/form-data"})) @Html.HiddenFor(

在MVC中,当我发布表单时,没有发布模型数据,我可以看到使用inspect元素正确命名的输入字段。请帮帮我

下面是我的代码

Using (Html.BeginForm("_saveActivities", "Projects", FormMethod.Post, New With {.name = "frmActivity", .id = "frmActivity", .enctype = "multipart/form-data"}))    
        @Html.HiddenFor(Function(X) X.Project.ID)
        @<table class="formTable">
                <thead>
                    <tr>
                        <td colspan="2">Project Activties</td>
                    </tr>
                </thead>
                <tr>
                    <td colspan="2" style=" text-align:right; background-color:#DFDFDF">  
                        To add new row click 
                        <a href="#?" onclick="addActivityRow(@Model.Project.ID)">click here</a>
                    </td>
                </tr>                    
                <tr>
                    <td colspan="2" style=" background-color:#DFDFDF">
                        <table id="tblProjectActivities" style=" width:100%">
                           <tr>
                                <td  style="width:1px;"></td>
                                <td  style=" width:300px;" >Activity</td>
                                <td  style=" width:110px;" >Start Date</td>
                                <td  style=" width:110px;" >End Date</td>
                                <td style=" width:15px;"></td>
                            </tr>
                            @For Each Item In Model.ProjectActivities
                                    Html.RenderPartial("_ProjectFormActivitiesRow", Item)
                                Next
                        </table>
                    </td>
                </tr>               
                <tfoot>
                    <tr>
                        <td colspan="2">
                            <div id="buttonsActivityDiv" style=" position:relative; background-color:inherit; height:40px;">
                                <input type="submit" id="comActivity" value="Update Activities"  class="k-button"/>
                           </div>
                        </td>
                    </tr>
                </tfoot>
        </table> 

    End Using
使用(Html.BeginForm(“\u saveActivities”,“Projects”,FormMethod.Post,新的{.name=“frmActivity”,.id=“frmActivity”,.enctype=“multipart/form data”}))
@Html.HiddenFor(函数(X)X.Project.ID)
@
项目活动
要添加新行,请单击
活动
开始日期
结束日期
@对于Model.ProjectActivities中的每个项目
Html.RenderPartial(“\u ProjectFormActivitiesRow”,Item)
下一个
终端使用
在parialview中,我有以下代码

@ModelType Models.ProjectActivityItem 
@code
    Dim strID As String = Guid.NewGuid.ToString
    Dim strRowID As String = Guid.NewGuid.ToString
    Dim strStateID As String = Guid.NewGuid.ToString("N")
End Code
<tr id="@strRowID">
    <td>
        <input type="hidden"  name="ProjectActivties.Index" value="@strID" />
        <input type="hidden"  name="ProjectActivties[@(strID)].DetailEntity.ID" value="@Model.DetailEntity.ID"/>
        <input type="hidden"  name="ProjectActivties[@(strID)].DetailEntity.CreatedOn" value="@Model.DetailEntity.CreatedOn"/>
        <input type="hidden"  name="ProjectActivties[@(strID)].DetailEntity.CreatedBy" value="@Model.DetailEntity.CreatedBy"/>
        <input type="hidden"  name="ProjectActivties[@(strID)].DetailEntity.VersionEncoded" value="@Model.DetailEntity.VersionEncoded"/>
        <input type="hidden"  name="ProjectActivties[@(strID)].DetailEntity.ProjectID" value="@Model.DetailEntity.ProjectID"/>
        <input type="hidden" id="@strStateID"  name="ProjectActivties[@(strID)].DetailEntity.EntityState" value="@Model.DetailEntity.EntityState"/>
    </td>   
    <td>@Html.TextBox("ProjectActivties[" & strID & "].DetailEntity.ActivityDescription", Model.DetailEntity.ActivityDescription, New With {.class = "inputAreaFull k-textbox"})</td>
    <td>@Html.Kendo.DatePicker().Name("ProjectActivties[" & strID & "].DetailEntity.StartDate").Min(New DateTime(2000, 1, 1)).Value(Model.DetailEntity.StartDate).Format("dd-MMM-yyyy").HtmlAttributes(New With {.style = "width:110px"})</td>
    <td>@Html.Kendo.DatePicker().Name("ProjectActivties[" & strID & "].DetailEntity.EndDate").Min(New DateTime(2000, 1, 1)).Value(Model.DetailEntity.EndDate).Format("dd-MMM-yyyy").HtmlAttributes(New With {.style = "width:110px"})</td>
    <td>
      <img src="@Url.Content("/Content/delete_icon.png")" onclick="removeProjectActivity('@strRowID','@strStateID')" style ="cursor:pointer" title="Delete Detail"/>
    </td>
 </tr>         
@ModelType Models.ProjectActivityItem
@代码
Dim strID As String=Guid.NewGuid.ToString
Dim strRowID As String=Guid.NewGuid.ToString
Dim strStateID为String=Guid.NewGuid.ToString(“N”)
结束代码
@Html.TextBox(“projectactivities[”&strID&“].DetailEntity.ActivityDescription”,Model.DetailEntity.ActivityDescription,新增为{.class=“Inputreafull k-TextBox”})
@Html.Kendo.DatePicker().Name(“projectactivities[”&strID&“].DetailEntity.StartDate”).Min(新的日期时间(2000,1,1)).Value(Model.DetailEntity.StartDate).Format(“dd MMM yyyy”).HtmlAttributes(新的带有{.style=“width:110px”})
@Html.Kendo.DatePicker().Name(“projectactivities[”&strID&“].DetailEntity.EndDate”).Min(新的日期时间(2000,1,1)).Value(Model.DetailEntity.EndDate).Format(“dd-MMM-yyyy”).HtmlAttributes(新的带有{.style=“width:110px”})
在控制器中,我使用

<HttpPost()> _
    Function _saveActivities(lModel As Models.ProjectModel) As ActionResult

    End Function
_
函数_将活动(lModel As Models.ProjectModel)保存为ActionResult
端函数
下面是我的模型

Public Class ProjectActivity

        Public Property ID As Int64
        Public Property ProjectID As Int32
        Public Property ActivityDescription As String
        Public Property StartDate As DateTime
        Public Property EndDate As DateTime
        Public Property CreatedOn As DateTime
        Public Property CreatedBy As Int32
        Public Property ModifiedOn As DateTime
        Public Property ModifiedBy As Int32

        <NotMapped()> _
        Public Property VersionEncoded As String
        <NotMapped()> _
        Public Property EntityState As EntityStateEnum
    End Class


 Public Class ProjectActivityItem
        Inherits BaseObject

        Public Property DetailEntity As Database.ProjectActivity            
    End Class
公共类项目活动
公共属性ID为Int64
公共财产项目为Int32
公共属性ActivityDescription作为字符串
公共属性StartDate为DateTime
公共属性EndDate作为DateTime
公共属性CreatedOn作为日期时间
由Int32创建的公共属性
公共属性修改为日期时间
公共属性被修改为Int32
_
公共属性版本编码为字符串
_
公共属性EntityState作为EntityStateEnum
末级
公共类项目活动项
继承BaseObject
公共属性DetailEntity作为Database.ProjectActivity
末级

模型与控件的Id不匹配。它映射了一个名称。检查渲染控件名称和模型属性是否相同或不同

您尚未显示您的模型、视图或生成的html。是什么让您认为输入字段的名称正确。我几乎可以向你保证,它们不是,因为它们是默认的,但对于一个集合来说部分不起作用。你能发布完整的模板吗?:)你有一个标签,对吗?如果你能检查的话,我已经编辑了这篇文章。你展示了哪种型号?它与您视图中的任何代码都不相关。显示主模型,以及您的分部中使用的
ProjectActivityItem
模型和属性
DetailEntity
描述的模型谢谢Stephen,我也添加了该模型。