我正在制作一个名为AskQuestion的应用程序,在第一页上我有一个问题列表作为链接,下面是一个textarea和一个发布问题的帖子按钮。 当我在textarea内写入并按下post按钮时,它会显示在问题列表中。 现在我从数据库中提取已发布的问题。我需要将其显示为链接.. 但是Html.Actionlink不支持这个
这是我的Model类:
public class Question_Page
{
public virtual int Id { get; set; }
public virtual string Question_name { get; set; }
public virtual string Address { get; set; }
public virtual DateTime Created_Date { get; set; }
public virtual DateTime Modified_Date { get; set; }
public virtual int Created_By { get; set; }
public virtual int Modified_By { get; set; }
public virtual char Deleted { get; set; }
public Question_Page()
{
this.Deleted='F';
}
}
这是我的观点:
@model IEnumerable<Core.Model.Question_Page>
@{
ViewBag.Title = "Index";
}
<style type="text/css">
ul
{
list-style-type: none;
}
</style>
<h2>All Questions</h2>
<hr />
@using (Html.BeginForm("Index","Question",FormMethod.Post))
{
@Html.ValidationSummary(true)
<ul>
foreach (var item in Model) {
<li>@Html.ActionLink(item.Question_name, "answer", new { id=item.Id })</li>
}
</ul>
<label for="PostyourQuestion:">Post your Question:</label><br /><br />
@Html.TextArea("textID")
<br />
<input type="submit"/>
}
但是我得到一个错误,说“当前上下文中不存在项目”
我知道我也可以在此之前使用锚标记,我也尝试了
<ul>
foreach (var item in Model) {
<li><a href="answer.cshtml">@Html.DisplayFor(modelItem => item.Question_name)</a></li>
}
</ul>
但是它没有识别href
中指定的url请帮帮我
答案 0 :(得分:1)
我做了一个看起来像你的样本,我发现你在“foreach”之前错过了“@”
@foreach (var item in Model) {
答案 1 :(得分:1)
第一个带有“Html.ActionLink”的应该可行。问题可能在您的模型中。如果模型返回null,则此模型中的项将导致foreach循环内的错误,您应首先检查模型null状态。 我认为Html.ActionLink方法在您的情况下非常有用。但是你应该传递参数来识别你的问题,即它的id。然后你可以使用这样的东西:
<li>@Html.ActionLink(item.Question_name, "answer",new{id= item.id})</li>
}