0
@Html.ActionLink("Reply", "BlogReplyCommentAdd", "Blog",
     new { blogPostId = blogPostId, replyblogPostmodel = Model,
     captchaValid = Model.AddNewComment.DisplayCaptcha },null)

我的控制器:

public ActionResult BlogReplyCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid)
{}

在我的控制器中,我正在传递整个模型。但是属性的值是 null 直到到达 Action

博客帖子型号:

  [Validator(typeof(BlogPostValidator))]
public partial class BlogPostModel : BaseNopEntityModel
{
    public BlogPostModel()
    {
        Tags = new List<string>();
        Comments = new List<BlogCommentModel>();
        AddNewComment = new AddBlogCommentModel();

    }

    public string SeName { get; set; }

    public string Title { get; set; }

    public string Body { get; set; }

    public bool AllowComments { get; set; }

    public int NumberOfComments { get; set; }

    public DateTime CreatedOn { get; set; }

    public IList<string> Tags { get; set; }

    public IList<BlogCommentModel> Comments { get; set; }
    public AddBlogCommentModel AddNewComment { get; set; }


}

无论如何我需要整个模型。提前致谢

4

1 回答 1

1

您根本不会采用这种正确的方式。唯一一次像这样在查询字符串中传递整个模型数据是通过 GET 操作提交 HTML 表单时;即便如此,除非 HTTP 缓存不是问题,否则这并不理想。

在这种情况下,您已经在查询字符串中将博客文章的 ID 传递给了控制器方法——因此在控制器方法中,您可以检索博客文章模型,然后将其传递给视图。

编辑添加此答案后-@levelnis 的评论随即出现-他/他们所说的完全一样。

更新

想想看——如果你做到了,这就是你的网站的工作方式——那么任何人都可以通过在查询字符串中植入各种可怕的东西来在你的博客网站上“发布”内容,更不用说让你的网站成为 SEO 垃圾邮件发送者的游乐场等等。

于 2013-01-04T11:32:31.807 回答