Asp.net mvc 3 在asp.NETMVC中更新关系数据库
我正在开发一个简单的博客应用程序来自学C#和asp.NETMVC3。 我正处于一个需要更新帖子评论的阶段 我的代码中的注释类如下所示:Asp.net mvc 3 在asp.NETMVC中更新关系数据库,asp.net-mvc-3,relational-database,Asp.net Mvc 3,Relational Database,我正在开发一个简单的博客应用程序来自学C#和asp.NETMVC3。 我正处于一个需要更新帖子评论的阶段 我的代码中的注释类如下所示: public class Comment { public int CommentID { get; set; } public string Name { get; set; } [DataType(DataType.EmailAddress)] public string Email
public class Comment
{
public int CommentID { get; set; }
public string Name { get; set; }
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[DataType(DataType.MultilineText)]
public string CommentBody { get; set; }
public int BlogID { get; set; }
public virtual Blog Blog { get; set; }
}
我在博客详细信息页面上有一个评论表单,上面有姓名、电子邮件和评论。代码如下:
<div class="editor-label">
@Html.LabelFor(model => model.Comment.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Comment.Name)
@Html.ValidationMessageFor(model => model.Comment.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Comment.Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Comment.Email)
@Html.ValidationMessageFor(model => model.Comment.Email)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Comment.CommentBody)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Comment.CommentBody)
@Html.ValidationMessageFor(model => model.Comment.CommentBody)
</div>
<p>
<input type="submit" value="Add Comment" />
</p>
@LabelFor(model=>model.Comment.Name)
@EditorFor(model=>model.Comment.Name)
@Html.ValidationMessageFor(model=>model.Comment.Name)
@LabelFor(model=>model.Comment.Email)
@EditorFor(model=>model.Comment.Email)
@Html.ValidationMessageFor(model=>model.Comment.Email)
@LabelFor(model=>model.Comment.CommentBody)
@EditorFor(model=>model.Comment.CommentBody)
@Html.ValidationMessageFor(model=>model.Comment.CommentBody)
我不知道如何通过这个传递blogid,以便用正确的blogid更新评论
谢谢。您可以在表单中使用隐藏字段:
@Html.HiddenFor(model => model.Comment.BlogID)
@Html.HiddenFor(x => x.Comment.BlogID)
您可以在表单中使用隐藏字段:
@Html.HiddenFor(x => x.Comment.BlogID)
这将如何为新注释获取正确的BlogID?引入hiddenform会导致此错误:INSERT语句与外键约束“FK_Comments\u Blogs\u BlogID”冲突。冲突发生在数据库“NPLHBlogDb”、表“dbo.Blogs”、列“BlogID”中。语句已终止。可能您的模型中的注释属性以外的内容;评论属于博客,因此您可以在模型中添加该博客引用。一旦使用Html.Hidden,请指定字段的名称并使用Blog.BlogID的值,而不是使用Html.HiddenFor。这将如何为新注释获取正确的BlogID?引入hiddenform会出现以下错误:INSERT语句与外键约束“FK_Comments_Blogs_BlogID”冲突。冲突发生在数据库“NPLHBlogDb”、表“dbo.Blogs”、列“BlogID”中。语句已终止。可能您的模型中的注释属性以外的内容;评论属于博客,因此您可以在模型中添加该博客引用。一旦使用Html.Hidden,请指定字段的名称并使用Blog.BlogID的值,而不是使用Html.HiddenFor。引入hiddenform会出现以下错误:INSERT语句与外键约束“FK_Comments_Blogs_BlogID”冲突。冲突发生在数据库“NPLHBlogDb”、表“dbo.Blogs”、列“BlogID”中。该语句已终止。我猜这是因为您的Blog属性为null。在插入注释之前,您必须使用BlogID属性从数据库获取实际的日志。我尝试在@Html.HiddenFor(x=>x.comment.BlogID,Model.Blog.BlogID)执行此操作。这不管用。我可以看到一个空值正在被传递给注释控制器。但是,我不知道如何传递正确的值。您必须从数据库中获取它。如果你想填充整个Blog属性,你必须为它的每个属性使用隐藏字段:
@Html.HiddenFor(x=>x.Comment.Blog.Prop1)
,诸如此类……很抱歉让人讨厌,但我不明白,我想将comment.BlogID设置为与正在发表评论的博客文章的id相等。引入hiddenform会导致以下错误:INSERT语句与外键约束“FK_Comments_Blogs_BlogID”冲突。冲突发生在数据库“NPLHBlogDb”、表“dbo.Blogs”、列“BlogID”中。该语句已终止。我猜这是因为您的Blog属性为null。在插入注释之前,您必须使用BlogID属性从数据库获取实际的日志。我尝试在@Html.HiddenFor(x=>x.comment.BlogID,Model.Blog.BlogID)执行此操作。这不管用。我可以看到一个空值正在被传递给注释控制器。但是,我不知道如何传递正确的值。您必须从数据库中获取它。如果你想填充整个Blog属性,你必须为它的每个属性使用隐藏字段:@Html.HiddenFor(x=>x.Comment.Blog.Prop1)
,诸如此类……很抱歉让人讨厌,但我不明白,我想将comment.BlogID设置为与正在发表评论的博客文章的id相等。您的操作是什么?你能添加行动代码吗?你在行动中做什么?你能添加动作代码吗?