#asp.net-mvc #asp.net-mvc-3
#asp.net-mvc #asp.net-mvc-3
Вопрос:
У меня следующая структура:
public class MyType
{
public int id { get; set; }
public string name { get; set; }
}
public class MyViewData : ObjetoViewModel
{
public List<MyType>[] listParams { get; set; }
}
При этом я загрузил 5 списков типа MyType
внутри listParams
массива.
Я пытаюсь получить доступ к первому id
из первого списка в моем представлении, но у меня ничего не получается. Я пытаюсь сделать что-то вроде:
<%: Html.Label(Model.listParams[0]. ???? )%></td>
Но я не могу достичь этого значения
Комментарии:
1. Что значит, вы не можете достичь значения? Что происходит? Зачем вы используете
Html.Label
, если вы просто пытаетесь получить доступ к значению свойства? Я не совсем понимаю, что здесь происходит.2. @AntP Я не знаю, как получить значение идентификатора поля, поскольку это список внутри массива. Есть ли какой-либо другой способ показать пользователю значение, которое я хочу, если не из label ? Спасибо
Ответ №1:
Чтобы распечатать элемент y
списка в элементе массива x
, вам просто нужно следующее:
<%: Model.lstParams[x][y].id %>
Html.LabelFor
предназначен для создания текстовых меток, которые (по умолчанию) отображают имя свойства, представленного вводом, где вводом будет выражение, представляющее свойство, а не значение свойства, которое вы пытаетесь создать.
Ответ №2:
Итак, причина, по которой вы хотите использовать помощник Html.Label, заключается в том, что он генерирует метку, которая соответствует вашему имени свойства, например.
Если бы у вас был один MyType
в качестве вашей модели, он бы сделал это:
<label for="id">id</label>
<input type="text" name="id" id="id" value="Some value"/>
Используя массив, вы как бы теряете это преимущество, но вы все равно можете заставить его работать, если вам нужно. Если вы пытаетесь отправить данные обратно, и именно поэтому вы хотите, чтобы это сработало, вы можете.
<% for (int i = 0; i < Model.lstParams; i ) { %>
<%: Html.LabelFor(m => m.lstParams[i].id) %>
<%: Html.TextBoxFor(m => m.lstParams[i].name) %>
<% } %>
Комментарии:
1. Я не думаю, что он вообще хочет создавать ярлык. Он хочет получить доступ к значению.