嗨,我正在使用 nhibernate 在 MVC 中开发应用程序。这是一个问答论坛,在第一页上,问题列表显示为链接。现在,当我单击该链接时,它会移动到答案页面,其中显示特定问题的答案。我有两个包含以下字段的表
问题表:
QuestionID int
Question nvarchar(255)
Created_Date datetime
Modified_Date datetime
Created_By int
Modified_By int
Deleted nchar(1)
答案表:
AnswerId int
Answer nvarchar(255)
Created_Date datetime
Modified_Date datetime
Created_By int
Modified_By int
QuestionID int (foreign key)
Deleted nchar(1)
这是我尝试过的: Inside QuestionPage.cshtml
@using (Html.BeginForm("Question_Page","QuestionAnswer",FormMethod.Post))
{
@Html.ValidationSummary(true)
<ul>
@foreach (var item in Model)
{
<li>@Html.ActionLink(item.Question, "Answer_Page", new { Id = item.QuestionID, Question = item.Question })</li>
}
</ul>
<br />
<h2><label for="PostyourQuestion:">Post your Question:</label></h2>
@Html.TextArea("PostyourQuestion")
<br /><br />
<input type="submit"/>
}
控制器内部:
public ActionResult Answer_Page(int Id, string Question)
{
var model = new AnswerService().GetAllAnswers();
ViewBag.Question = Question;
model = (from x in model
where x.QuestionID.Equals(Id)
select x).ToList();
return View(model);
}
[HttpPost]
public ActionResult Answer_Page(Answers ans, string PostyourAnswer, int Id,string Question)
{
ViewBag.Question =Question;
ans.Answer = PostyourAnswer;
ans.CreatedDate = DateTime.Now;
ans.ModifiedDate = DateTime.Now;
ans.CreatedBy = 101;
ans.ModifiedBy = 101;
ans.FkQuestionID= Id;
if (ModelState.IsValid)
{
new AnswerService().SaveOrUpdateAnswers(ans);
var model = new AnswerService().GetAllAnswers();
model = (from x in model
where x.QuestionID.Equals(Id)
select x).ToList();
return View(model);
}
return View();
}
但问题是 OnPost 我在 Question 变量中得到一个空值,因此当用户提交表单时我无法在帖子上显示问题。请帮助我。我知道我错过了一些愚蠢的东西。