Asp.net mvc 在数据库中为帖子添加新注释
我正在mvc3中创建一个论坛应用程序 我有一个名为“在帖子页面上添加新评论”的链接,用户可以在其中添加该帖子的评论。。。为了创建新注释,我编写了以下代码Asp.net mvc 在数据库中为帖子添加新注释,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我正在mvc3中创建一个论坛应用程序 我有一个名为“在帖子页面上添加新评论”的链接,用户可以在其中添加该帖子的评论。。。为了创建新注释,我编写了以下代码 public ActionResult Addnew(int id) { Answer ans = new Answer(); ans.QuestionQId = id; return View(); } [HttpPost] public ActionResu
public ActionResult Addnew(int id)
{
Answer ans = new Answer();
ans.QuestionQId = id;
return View();
}
[HttpPost]
public ActionResult Addnew(Answer ans,int id)
{
_db.Answers.Add(ans);
_db.SaveChanges();
return View("Details");
}
但每当我尝试按如下方式保存代码时,它都会给出平均错误:
值不能为null。
参数名称:实体
我有两个不同的表格问题{id(pk),问题}和答案{id(pk),ans,Qid(fk)}
我只想在为特定问题添加注释时,其Qid将存储在答案数据库中
救救我
视图相关--
@使用(Html.BeginForm())
{
@Html.ValidationSummary(true)
答复
@LabelFor(model=>model.AId)
@EditorFor(model=>model.AId)
@Html.ValidationMessageFor(model=>model.AId)
@LabelFor(model=>model.Ans)
@EditorFor(model=>model.Ans)
@Html.ValidationMessageFor(model=>model.Ans)
@LabelFor(model=>model.QuestionQId)
@DisplayFor(modelItem=>modelItem.QuestionQId)
}
我认为您没有将应答对象传递给视图,这可能导致问题。你试过跟随吗
public ActionResult Addnew(int id)
{
Answer ans = new Answer();
ans.QuestionQId = id;
return View(ans);
}
是否在控制器的路由定义参数中?
也许这是你的问题 您得到的错误是在保存时,对吗?然后,您可以显示负责保存的操作结果吗?您是否检查了
ans
参数是否为null?@Eranga:是的,它将ans显示为null并在那里给我错误…但我不知道如何解决它。您可以发布Addnew
视图(代码内部使用(var for=BeginForm
)@Eranga:嘿,我需要破解代码,因为它不允许我粘贴整个代码。你调试过解决方案并检查post方法中的应答对象是否为空吗?@使用(Html.BeginForm()){@Html.ValidationSummary(true)Answer@Html.LabelFor(model=>model.AId)@Html.EditorFor(model=>model.AId)@Html.ValidationMessageFor(model=>model.AId)@Html.LabelFor(model=>model.Ans)@Html.EditorFor(model=>model.Ans)@Html.ValidationMessageFor(model=>model.Ans)@Html.LabelFor(model=>model.QuestionQId)@Html.DisplayFor(modelItem=>modelItem.QuestionQId)}嘿,提交按钮在哪里?你没有使用任何或没有在评论中添加任何内容吗?你能在我的开始表单块之后用viewIts的完整代码更新问题吗
public ActionResult Addnew(int id)
{
Answer ans = new Answer();
ans.QuestionQId = id;
return View(ans);
}