Результат действия asp.net mvc и вопрос количества - PullRequest
0 голосов
/ 27 сентября 2011

Я работаю над плагином на основе архитектуры. Это своего рода сайт социальной сети. Для пользователя у меня могут быть картинки, блоги, видео. но все они приходят из модулей. Итак, когда вы заходите в профиль пользователя, вы видите вкладки, на которых написаны картинки, видео и прочее. У меня есть интерфейс

public interface IUserContent
{
    UserContent GetContent(long id);


}
public class UserContent
{
   public int Count {get;set;}
   public string URL {get;set;
   public string Text {get;set;

}

Итак, если модуль фотографий реализует IUserContent это будет выглядеть так

public class UserPhotos : IUserContent
{
  public UserContent GetContent(long id)
  {

     return new UserContent { 
               Count = SomeRepository.GetPhotosCountByUser(id), 
               URL =  string.format("/photos/byuser/{0}",id) ,
               Text ="Photos"  };

 }
}

Этот URL-адрес представляет собой метод действия в Photoshop Controller.

На странице моего профиля я получаю все реализации IUserContent

var list =  GetAllOf(IUserContent);

и отображать их, используя цикл foreach в качестве вкладок на странице профиля пользователя.

Теперь мой вопрос: есть ли лучший способ сделать это? Я не хочу использовать URL в качестве строки. Или любая лучшая практика для достижения этого.

Привет

Parminder

1 Ответ

1 голос
/ 27 сентября 2011

Да.

Замените URL = string.format("/photos/byuser/{0}",id) на:

URL = Url.Action("ByUser", "Photo", new { id })

Если вы хотите сгенерировать URL, при котором ваше действие называется ByUser и принимает id в качестве аргумента иваш контроллер называется PhotoController;или используйте:

URL = Url.RouteUrl("PhotosByUser", new { id })

Если вы хотите сгенерировать свой URL, полученный из маршрута с именем PhotosByUser.

См .: -

Для получения дополнительной информации:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...