-1
我正在寫博客。有了這個博客,我可以發送消息,人們可以對這些消息作出反應。爲了達到這個目的,我製作了兩個模型,消息和評論。由此,消息可以具有多個評論,因此它們具有一對多的關係。現在我正在嘗試爲消息添加新的評論,但我沒有得到它的工作。向數據庫添加新的相關對象
當我添加一條消息時,它從我的try catch語句中返回我的視圖。
我已將其追蹤到我嘗試將值綁定到我的評論模型中的foreignkey messagesId的部分。 我正在做這件事,因爲我想將我的評論分配給一條消息。
這裏是我的模型
namespace Portfolio.Models
{
public class Messages
{
public int MessagesId { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Body { get; set; }
public DateTime WhenCreated { get; set; }
public virtual ICollection<Comments> Comments { get; set; }
public Messages()
{
WhenCreated = DateTime.Now;
}
}
}
namespace Portfolio.Models
{
public class Comments
{
public int CommentsId { get; set; }
public string Comments_body { get; set; }
public DateTime WhenCreated { get; set; }
public int ComToMes { get; set; }
public virtual Messages Messages { get; set; }
public Comments()
{
WhenCreated = DateTime.Now;
}
}
}
這裏是我的控制器
[ValidateInput(false)]
[HttpPost]
public ActionResult CreateComments(FormCollection formValues)
{
try
{
Comments comment = new Comments();
comment.Comments_body = formValues["editor"];
var currentMessage
=_context.messages.Find(Int32.Parse(formValues["IdName"]));
comment.Messages.MessagesId = currentMessage.MessagesId;
_context.comments.Add(comment);
_context.SaveChanges();
}
catch
{
return View();
}
return RedirectToAction("Blog");
}
這裏是我的看法
@*The form to post comments*@
@using (Html.BeginForm("CreateComments", "Messages"))
{
<div class="form-group">
<label>Comment</label>
@Html.TextArea("editor", htmlAttributes: new { name = "editor1",
id = "editor", rows = "10", cols = "180" }
@Html.Hidden("IdName",messages.MessagesId)
</div>
<button type="submit" class="btn btn-primary" id="PostButton">Post
Comment</button>
}
您的「評論」模型需要「消息」的導航屬性 - 例如, 'public int MessageId {get;組; }'。但你真的需要去MVC網站並通過教程來學習基礎知識。 –
我可以給你的一個非常好的提示是爲你的實體名稱使用單數。 '消息'和'評論'。它確實有助於可讀性(特別是一目瞭然)。 – Flater
thnx即時即將改變,馬上@Flater – ruinerwarrior