Erx*_*der 5 .net c# vb.net asp.net asp.net-mvc
我只是使用Ajax.BeginForm发送一个正常的POST请求...我使用.TextBoxFor和.HiddenFor等输出表单元素...所有我应该......当它通过ajax发布到我的action方法时,动作方法中的对象(名为"注释")没有填充值!
我错过了什么吗?这是我的代码的相关部分给那些想要看到它的人...
<% Using Ajax.BeginForm("UpdateComment", "Home",
New AjaxOptions With {.UpdateTargetId = Model.CommentDivId,
.HttpMethod = FormMethod.Post})%>
Run Code Online (Sandbox Code Playgroud)
和....
<%= Html.HiddenFor(Function(x) x.Comment.CommentID)%>
<%= Html.TextAreaFor(Function(x) x.Comment.Comment, 8, 40,
New With {.style = "overflow: hidden;"})%>
<%= Html.ValidationMessageFor(Function(x) x.Comment.Comment) %>
Run Code Online (Sandbox Code Playgroud)
这里是Action方法,它引发了错误...当我尝试使用该对象时,错误是一个空引用异常:
Function UpdateComment(ByVal UpCom As Comment) As ActionResult
Run Code Online (Sandbox Code Playgroud)
Dim db = New FPicDataContext Dim Updatable =(from c in db.Comments where c.CommentID = UpCom.CommentID).FirstOrDefault Updatable.Comment = UpCom.Comment'这是对象是空的错误被提出!基本上,UPCOM的所有价值(评论中)都是0或者没有.db.SubmitChanges()
Dim cm =新的CommentModel,{.Comment = UpCom,.CommentDivId ="CommentDiv"&UpCom.CommentID.ToString}
返回PartialView("注释",cm)
结束功能
我最终解决了这个问题,事实证明模型在操作参数中绑定的对象名称必须与您在执行 TextBoxFor BeginForm 等时使用的对象名称相同...经过测试,确认,就是这样!
所以,换句话说,UpCom必须命名Comment:)。
但是,请注意,我没有在任何地方、任何文档或任何内容中听说过此要求!有人对此有什么想法吗?
| 归档时间: |
|
| 查看次数: |
871 次 |
| 最近记录: |