Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как передать в Html.ActionLink вложенную сущность ? / 8 сообщений из 8, страница 1 из 1
14.07.2016, 12:31
    #39273690
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в Html.ActionLink вложенную сущность ?
Привет. Подскажите как реализовать данную вещь.

Имеется такая модель данных
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    public class RequestListModel
    {        
        public MyData Data { get; set; }
    }
	
	
    public class MyData
    {
        public int? Status { get; set; }        
    }	



И нужно сделать ссылку с передачей вложенного параметра. Пробую так (не работает):

Код: c#
1.
2.
3.
4.
5.
6.
7.
                            
@Html.ActionLink("Список запросов", "MyList", "Request",
new {
  Data.Status = 1    // Не компилится
  Status   // так не работает
  }
,null)



как решить эту задачу без написания собственного Binder'а ?
...
Рейтинг: 0 / 0
14.07.2016, 12:53
    #39273710
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в Html.ActionLink вложенную сущность ?
PS. Поправлюсь еще.

Класс MyData выглядит иначе, чем я написал:
Код: c#
1.
2.
3.
4.
5.
   
public class MyData
    {
       public IEnumerable<int> Status { get; set; }            
    }



Но вопрос, в основном, как на вьюхе через анонимный тип передавать вложенные параметры.
...
Рейтинг: 0 / 0
14.07.2016, 13:02
    #39273718
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в Html.ActionLink вложенную сущность ?
ProBiotek,

если по простому - храни параметры во ViewBag. а если по сложному - так делать нельзя
...
Рейтинг: 0 / 0
14.07.2016, 13:39
    #39273756
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в Html.ActionLink вложенную сущность ?
ProBiotek, @Html.ActionLink - это httpGet запрос, а это значит, что параметры можно передавать только простого типа string в строке URL.
...
Рейтинг: 0 / 0
14.07.2016, 13:52
    #39273765
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в Html.ActionLink вложенную сущность ?
Axeleronпараметры можно передавать <strooong>только</strooong> простого типа string в строке URL.


Однако такой вариант то работает:
Код: c#
1.
/My/List?Data.Status=1



Вручную такую ссылку я могу сформировать (в адресной строке) и биндер ее правильно распознаёт.

Я ведь могу вообще эту строку закодировать вручную на вьюхе, забив на методы хэлперы.
Но в этом случае я лишаюсь системы роутинга. Если будет решено изменить адресную строку (My/List поменять на Other/List) то придется лезть в эту вьюху и править. не красиво.

Поэтому я и спросил о правильном решении - через хэлперы.
...
Рейтинг: 0 / 0
14.07.2016, 16:30
    #39273969
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в Html.ActionLink вложенную сущность ?
ProBiotek, работает. Но проблема как я понял в сложных типах данных, которые в URL не укажешь. Поэтому как выше был дан совет - переправлять на httpGet метод контроллера и возваращать view с viewBag, который является динамическим типом и может содержать любые типы данных.
...
Рейтинг: 0 / 0
14.07.2016, 16:37
    #39273980
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в Html.ActionLink вложенную сущность ?
ну ок. Я думал что решение есть.
...
Рейтинг: 0 / 0
15.07.2016, 05:58
    #39274242
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в Html.ActionLink вложенную сущность ?
Я не пробовал, но может так?
Код: c#
1.
2.
3.
@Html.ActionLink("Список запросов", "MyList", "Request",
new { Data = new { Status = 1 }  }
,null)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как передать в Html.ActionLink вложенную сущность ? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]