加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 无法弄清楚为什么模型在回发时为null?

发布时间:2020-12-16 06:46:28 所属栏目:asp.Net 来源:网络整理
导读:我是ASP.NET MVC的新手,我正在尝试创建一个非常简单的博客类型网站,以此来学习一切是如何工作的.但是,从评论表单发布到无效的模型时我遇到了问题,我无法说明原因. 在博客文章页面上,我有一个“添加注释”链接,它调用一些JQuery来呈现一个强烈键入CommentMode
我是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”的完整对象.模型绑定器无法将发布数据映射到相应的模型对象中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读