asp.net-mvc – 无法弄清楚为什么模型在回发时为null?
我是ASP.NET MVC的新手,我正在尝试创建一个非常简单的博客类型网站,以此来学习一切是如何工作的.但是,从评论表单发布到无效的模型时我遇到了问题,我无法说明原因.
在博客文章页面上,我有一个“添加注释”链接,它调用一些JQuery来呈现一个强烈键入CommentModel的局部视图.链接也传入博客文章的ID,部分编码如下: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Blog.Models.CommentModel>" %> <% using (Html.BeginForm()) { %> <%: Html.HiddenFor(x => x.Post.ID) %> <%: Html.HiddenFor(x => x.CommentID) %> <%: Html.TextBoxFor(x => x.Name) %><br /> <%: Html.TextBoxFor(x => x.Email) %><br /> <%: Html.TextBoxFor(x => x.Website) %><br /> <%: Html.TextAreaFor(x => x.Comment) %><br /> <input type="submit" value="submit" /> <% } %> CommentsModel很简单,看起来像这样(我还没有应用任何验证或任何东西): public class CommentModel { public BlogPost Post { get; set; } public int CommentID { get; set; } public string Name { get; set; } public string Email { get; set; } public string Website { get; set; } public string Comment { get; set; } } 然后,这应该发布到一个简单的控制器操作,该操作将注释添加到数据库并将用户返回到页面.为了简单起见,我删除了大部分代码,但它看起来类似于: [HttpPost] public ActionResult CommentForm(CommentModel model) { if (ModelState.IsValid) { } else { } } 一切都按预期工作,除了在发布评论表单时,评论模型为空.我无法弄清楚为什么这是空的.当我查看渲染的局部视图的来源时,我可以看到“Post.ID”填充了正确的ID,但是在提交表单时会丢失. 我错过了一些明显的东西吗?我在过去设置了与此类似的表格并且工作正常,我无法理解为什么现在不行.提前致谢. 后来编辑: 我错误地输入了代码并从公共ActionResult CommentForm(CommentModel注释)更改了公共ActionResult CommentForm(CommentModel模型),这导致了问题. 谢谢您的帮助. 解决方法
昨天也回答了类似的问题.退房:
MVC3 – Insert using ViewModel – Object reference not set to an instance of an object
我可以看到的问题是,当发布表单时,会传递Post.ID和CommentID,而您的操作则需要一个类型为“CommentModel”的完整对象.模型绑定器无法将发布数据映射到相应的模型对象中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET [图像处理程序]
- asp.net – 使加密字符串的长度与输入字符串相同?
- asp.net – visio服务器端自动化的替代方案
- asp.net-mvc-2 – MVC HttpDelete动词导致405方法不允许
- .NET Core技术研究-中间件的由来和使用
- asp.net – 一键发布:执行发布时出现异常:已添加具有相同
- asp.net – 如果内容是静态的,那么对于带有“If-Modified-S
- ASP.NET Core 2.0 + EF6 + Linux&nbs
- 在asp.net中将用户变量存储在数据库与会话中
- asp.net – 在VB.Net Web应用程序中使用SubSonic
- asp.net-mvc – ASP.NET MVC视图模型命名约定
- 可以在asp.net mvc4中使用jquery在@html.label中
- asp.net-mvc – 如何获得html.ActionLink结果文本
- asp.net-mvc – 在ASP.net MVC中通过jQuery在客户
- asp.net-mvc – 用于子操作的ASP.NET MVC路由匹配
- asp.net-mvc – 使用浏览器栏将列表传递给MVC We
- asp.net-mvc-4 – Html.LabelFor始终显示属性名称
- asp.net – Model-Repository-Service-Validator
- asp.net-mvc – 未找到路径’/ Home’的控制器或
- asp.net-core – ASPNetCore – 通过REST上传文件