2015-01-11 2 views
1

Это моя первая попытка приложения MVC.Как обращаться с «Значение не может быть пустым или пустым» при использовании @ Html.ActionLink?

Я показываю сетку данных, для которой некоторые поля имеют значение NULL. Каждый столбец имеет actionlink, позволяющий пользователю фильтровать страницу по этим данным. К сожалению, я не могу понять, как обращаться с «Значение не может быть пустым или пустым. Имя параметра: linkText 'error, которое возникает, когда у меня есть поле, которое равно null.

Отображается, что DisplayFormat игнорируется для actionlink?

[DisplayFormat(DataFormatString = "'{0}'", NullDisplayText = "'Unknown Initials'")] 

public string initials { get; set; } 

@foreach (var item in Model) 
{ 
    <tr> 
<td> 
    @Html.ActionLink(item.Name.initials, "Index", new { i = item.Name.initials }) 
</td> 

ответ

3
 [DisplayFormat(DataFormatString = "'{0}'", NullDisplayText = "'Unknown Initials'")] 

     public string initials { get; set; } 

     @foreach (var item in Model) 
     { 
      <tr> 

    if(String.IsNullOrEmpty(item.Name.initials) 
    { 
    <td> 
      @Html.ActionLink("Unknown Initials", "Index", new { i = "Unknown Initials" }) 
     </td> 
    } 
    else 
    { 
    <td> 
      @Html.ActionLink(item.Name.initials, "Index", new { i = item.Name.initials }) 
     </td> 
    } 
</tr> 
} 
+0

Это сделал трюк. Для записи в приведенном выше примере просто отсутствует первый символ '@' перед тем, если } –

1

Похоже, что свойство initials пусто или пусто, что не допускается. Можно использовать значение по умолчанию для якорного текста в этом случае:

@Html.ActionLink(item.Name.initials ?? "->", "Index", new { i = item.Name.initials }) 
Смежные вопросы