ASP.NET динамический контент - PullRequest
2 голосов
/ 16 апреля 2011

Я работаю над веб-сайтом ASP.NET (MVC3 HTML5). Мне нужно как-то разрешить администратору редактировать контент, такой как новости, текст домашней страницы, рекламные акции и т. Д. Могу ли я реализовать это с помощью существующего API?

Спасибо.

1 Ответ

1 голос
/ 16 апреля 2011

Очень просто.Создайте интерфейс для редактирования содержимого, которое вы хотите, чтобы администратор редактировал, и защитите его атрибутом [Authorize]

    //for the users    
    [Authorize]
    public ActionResult NormalUsers(int newsItemId)
    {
        //Getting content from DB.
        NewsItem news = new NewsItem(newsItemId);
        return View("ShowNews", news);
    }

    //for editors
    [Authorize(Roles = "Admin, Super User")]
    [HttpGet]
    public ActionResult AdministratorsOnly(int newsItemId)
    {
        //Getting content from DB
        NewsItem news = new NewsItem(newsItemId);
        return View("EditNews", news);
    }

    [Authorize(Roles = "Admin, Super User")]
    [HttpPost]
    public ActionResult AdministratorsOnly(NewsItem newsItem)
    {
        //Putting content in DB
        newsRepository.StoreNewsItemInDB(newsItem);
        NewsItem news = new NewsItem(newsItem.Id);//getting the newsItem from DB, to allow for server side processing. 
        return View("EditNews", news);
    }

Ссылка на MSDN для подробной информации о языке.

То, как это может работать, состоит в том, что у вас есть два (фактически три) представления новостей.Первое представление предназначено для представления объекта NewsItem для обычного пользователя.

Второе представление предназначено для получения объекта NewsItem для редактирования.И третье представление предназначено для отображения объекта NewsItem после редактирования, чтобы гарантировать конечный результат редактирования.

Пользователям всегда будет представлен последний отредактированный элемент NewsItem (такой же, как 3).

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