有没有办法通过html传递整个模型.ASP中的actionlink.NET MVC 3剃刀

本文关键字:中的 ASP 模型 actionlink NET 剃刀 MVC html 有没有 | 更新日期: 2023-09-27 17:50:35

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

My Controller:

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

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

之前为null

BlogPostModel:

  [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; }

}

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

有没有办法通过html传递整个模型.ASP中的actionlink.NET MVC 3剃刀

你这样做根本不对。只有当HTML表单通过GET操作提交时,整个模型数据才会像这样在查询字符串中传递;即使这样,这也不是理想的,除非在HTTP缓存没有问题的情况下。

在这个例子中,你已经在查询字符串中将博客文章的ID传递给了控制器方法——所以在你的控制器方法中你去检索博客文章模型,然后将它传递给视图。

编辑在添加这个答案后- @levelnis的评论就出现了-他/他们说的是完全相同的事情。

想想看——如果你这样做,你的网站就是这样工作的——那么任何人都可以在你的博客网站上"发布"内容,通过在查询字符串中添加各种可怕的东西,更不用说让你的网站成为搜索引擎优化垃圾邮件发送者的游乐场等等。