Vb.net 模型未传回控制器mvc3

Vb.net 模型未传回控制器mvc3,vb.net,asp.net-mvc-3,razor,Vb.net,Asp.net Mvc 3,Razor,这是一个MVC3,VB.NET应用程序,使用razor视图引擎。由于某种原因,我的模型没有被传递回控制器。在post操作中,当我查看变量时,它在集合中有0项。你知道为什么会这样吗 控制器后操作如下所示: <AcceptVerbs(HttpVerbs.Post)> Function EditSponsorPercs(ByVal SponPercModel As PercsCollection) As ActionResult '' LOGIC HERE FO

这是一个MVC3,VB.NET应用程序,使用razor视图引擎。由于某种原因,我的模型没有被传递回控制器。在post操作中,当我查看变量时,它在集合中有0项。你知道为什么会这样吗

控制器后操作如下所示:

  <AcceptVerbs(HttpVerbs.Post)>
    Function EditSponsorPercs(ByVal SponPercModel As PercsCollection) As ActionResult
        '' LOGIC HERE FOR processing model
        ''
        ''
        '  db.sponsorlevels.ApplyCurrentValues(y)
        db.SaveChanges()
        Return RedirectToAction("xxxxxxnsorInfo")
    End Function
@ModelType xxxxxxx.PercsCollection

@Code
ViewData("Title") = "EditSponsorPercs"
End Code
@Using Html.BeginForm()
@<fieldset>

 <table style="width: 100%">
   <tr><td>@Html.ActionLink("Add Benefit", "AddSponBen", New With {.id = model.persCollections.ElementAt(0).idSponLevel})</td></tr>
   <tr><th style="width: 90%">Benefits Descriptions</th><th>Order</th></tr>
        @For i As Integer = 0 To Model.persCollections.Count - 1
             Dim _i = i
               @<tr><td style="min-height: 20px; width:80%">@Html.TextAreaFor(Function(f) f.persCollections.ElementAt(_i).sponLvlPercDesc, New With {.class = "item2"})</td><td>@Html.TextAreaFor(Function(f) f.persCollections.ElementAt(_i).percOrdering, New With {.class = "num1"})</td><td>@Html.ActionLink("Delete", "DeleteSponBen", New With {.id = Model.persCollections.ElementAt(0).idpercLevel})</td><td></td></tr>
        Next
  </table>
 <p><input type="submit" name="Submit" /></p>
</fieldset>
End Using
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
 ...............</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden"     value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 1</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="1" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
 ..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 2</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="2" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
 ..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 3</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="3" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
  ..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 4</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="4" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
 ..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value="..................(Submit your logo)" /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 5</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="5" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">R..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 6</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="6" /></td><td><a                                             href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr> 
呈现的HTML源如下所示:

  <AcceptVerbs(HttpVerbs.Post)>
    Function EditSponsorPercs(ByVal SponPercModel As PercsCollection) As ActionResult
        '' LOGIC HERE FOR processing model
        ''
        ''
        '  db.sponsorlevels.ApplyCurrentValues(y)
        db.SaveChanges()
        Return RedirectToAction("xxxxxxnsorInfo")
    End Function
@ModelType xxxxxxx.PercsCollection

@Code
ViewData("Title") = "EditSponsorPercs"
End Code
@Using Html.BeginForm()
@<fieldset>

 <table style="width: 100%">
   <tr><td>@Html.ActionLink("Add Benefit", "AddSponBen", New With {.id = model.persCollections.ElementAt(0).idSponLevel})</td></tr>
   <tr><th style="width: 90%">Benefits Descriptions</th><th>Order</th></tr>
        @For i As Integer = 0 To Model.persCollections.Count - 1
             Dim _i = i
               @<tr><td style="min-height: 20px; width:80%">@Html.TextAreaFor(Function(f) f.persCollections.ElementAt(_i).sponLvlPercDesc, New With {.class = "item2"})</td><td>@Html.TextAreaFor(Function(f) f.persCollections.ElementAt(_i).percOrdering, New With {.class = "num1"})</td><td>@Html.ActionLink("Delete", "DeleteSponBen", New With {.id = Model.persCollections.ElementAt(0).idpercLevel})</td><td></td></tr>
        Next
  </table>
 <p><input type="submit" name="Submit" /></p>
</fieldset>
End Using
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
 ...............</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden"     value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 1</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="1" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
 ..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 2</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="2" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
 ..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 3</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="3" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
  ..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 4</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="4" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">
 ..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value="..................(Submit your logo)" /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 5</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="5" /></td><td><a href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr>
 <tr><td style="min-height: 20px; width:80%"><textarea class="item2" cols="20" id="sponLvlPercDesc" name="sponLvlPercDesc" rows="2">R..................</textarea><input id="sponLvlPercDesc" name="sponLvlPercDesc" type="hidden" value=".................." /></td><td><textarea class="num1" cols="20" id="percOrdering" name="percOrdering" rows="2">
 6</textarea><input id="percOrdering" name="percOrdering" type="hidden" value="6" /></td><td><a                                             href="/Admin/DeleteSponBen/1">Delete Sponsor Benefit</a></td><td></td></tr> 

...............
1.
..................
2.
..................
3.
..................
4.
..................
5.
R
6.

视图填充良好,但在提交时,模型返回为空。。为创意打开..

表单的HTML是如何呈现的?为什么要执行
Dim\u i=i
?Dim\u i=i只是修复了i的VS突出显示,即在lambda表达式中使用迭代变量可能会产生意外的结果。。。没有其他原因。通过按钮将Id传递给调用的控制器函数。确实,生成的HTML会很好。另外,
percsCollection
是否从集合类继承?我被模型的名称弄糊涂了,然后引用了
model.persCollections
。我编辑了OP以包含模型以及呈现的html示例。