我试着结束一个非常简单的博客。在我看来,我得到了这个:
@using (Html.BeginForm("AddBlogPost", "Home")) <--Probably missing something here
{
foreach (var item in Model.BlogPost)
{
@Html.LabelFor(x=>item.Title)
@Html.TextBoxFor(x=>item.Title)
@Html.LabelFor(x=>item.Text)
@Html.TextBoxFor(x=>item.Text)
}
<input type="submit" value="Create Post" />
}
使用submit-button,我希望将这两个值传递给该控制器:
public ActionResult AddBlogPost(BlogPost model)
{
BlogPost post = new BlogPost()
{
Title = model.Title,
Text = model.Text,
};
RavenSession.Store(post);
RavenSession.SaveChanges();
return RedirectToAction("Index");
}
创建新的博客帖子并将其保存到数据库中。 问题是该方法接收null。猜猜我错过了傻傻的东西?
编辑:
我不再传递博客帖子列表......:
@using (Html.BeginForm("AddBlogPost", "Home"))
{
@Html.LabelFor(Model.Title)
@Html.TextBoxFor(Model.Title)
@Html.LabelFor(Model.Text)
@Html.TextBoxFor(Model.Text)
<input type="submit" value="Create Post" />
}
这似乎不是正确的方法......
编辑2:这是我的两个班级:
public class ContentPage
{
public ContentPage()
{
Template = new RouteTemplate();
ParentReference = "";
Url = "/";
}
public string ParentReference { get; set; }
public RouteTemplate Template { get; set; }
public string Url { get; set; }
public bool ShowInMenu { get; set; }
public string Title { get; set; }
public string Id { get; set; }
public BlogPost BlogPost { get; set; }
}
博客类:
public class BlogPost
{
public string Title { get; set; }
public string Text { get; set; }
}
在视图中我传递了COntentPage,其中包含Blog-post的一个实例......我似乎无法以您描述的方式访问博客帖子?对不起,从一开始就没有发现。
答案 0 :(得分:1)
使用BlogPost
类绑定您的视图,不要使用foreach
循环。请参阅以下代码。
@using (Html.BeginForm("AddBlogPost", "Home"))
{
@Html.LabelFor(x=>Model.Title)
@Html.TextBoxFor(x=>Model.Title)
@Html.LabelFor(x=>Model.Text)
@Html.TextBoxFor(x=>Model.Text)
<input type="submit" value="Create Post" />
}