2011-04-16 157 views
2

我正在研究ASP.NET(MVC3 HTML5)網站。我需要以某種方式允許管理員編輯新聞,主頁文本,促銷等內容。我可以使用現有的API來實現這一點嗎?ASP.NET動態內容

謝謝。

+0

管理員需要在網站的前端執行此操作嗎?或通過內容管理系統? – Rob 2011-04-16 11:40:15

+0

它是前端編輯。 – 2011-04-17 05:09:31

回答

1

很簡單。 將界面編輯您想要的管理編輯,並與[授權]保護它的屬性

//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); 
    } 

Link to MSDN for the language details.

它可以工作方式的內容是,你有兩個(實際上有三個)的意見爲新聞。 第一個視圖用於爲普通用戶呈現NewsItem對象。

第二個視圖用於獲取NewsItem對象進行編輯。 第三個視圖用於顯示編輯後的NewsItem對象,以確保編輯的最終結果。

用戶總是會看到上次編輯的NewsItem(與3相同)。

+0

是的,這是正確的,但我怎樣才能指定管理員正在編輯該頁面,這將顯示給用戶? – 2011-04-16 13:02:13

+0

這是兩個不同的頁面,其中一個是隻讀的用戶,另一個編輯相同的內容(數據庫,客戶關係管理,XML或任何你喜歡保存內容)。 您的用戶將永遠不會進入管理員視圖,因此無法編輯。 另一個優點是你可以以不同的方式對它們進行設計。漂亮的用戶和商務 - 就像管理員(他們喜歡這個:-))。 – Guidhouse 2011-04-16 18:19:35

+0

但是如果將來我需要一些其他內容纔是動態的呢?有沒有辦法直接編輯管理員的用戶視圖? – 2011-04-16 19:33:01