отобразить значение, полученное из базы данных в Html.Actionlink () в mvc3 - PullRequest
2 голосов
/ 19 марта 2012

Я делаю приложение под названием AskQuestion, где на первой странице у меня есть список вопросов в виде ссылок, а под ним - текстовая область и кнопка «Отправить», чтобы опубликовать вопрос.когда я пишу внутри текстовой области и нажимаю кнопку записи, она отображается внутри списка вопросов.Теперь я выбираю опубликованные вопросы из базы данных.и мне нужно отобразить его как ссылку .. но Html.Actionlink не поддерживает это

это мой класс модели:

  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>

но с ним не идентифицируется URL, указанный в href

, пожалуйста, помогите мне

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Первый с «Html.ActionLink» должен работать. Проблема может быть в вашей модели. Если ваша модель возвращает ноль, то элемент в этой модели вызовет ошибку внутри цикла foreach, вы должны сначала проверить нулевое состояние модели. Я думаю, что метод Html.ActionLink очень полезен в вашем случае. Но вы должны передать аргумент, чтобы идентифицировать ваш вопрос, а именно его идентификатор. Тогда вы можете использовать что-то вроде этого:

1 голос
/ 19 марта 2012

Я сделал пример, похожий на ваш, и обнаружил, что вы пропустили "@" перед "foreach"

@foreach (var item in Model) {
...