2016-11-20 3 views
-1

У меня есть проект MVC, который содержит много просмотров, Я хочу, чтобы клиент редактировал контент по своему усмотрению и сохранил его.Что такое Best Practice CMS в MVC?

Как я могу создать систему управления контентом (CMS)?

Я прочитал о RedEditor в telerik, но работает только с html-файлами, MVC - это файлы cshtml, содержащие бритву, и я не могу справиться с RedEditor.

Моя проблема, что у меня есть встроенный веб-сайт для клиента, и теперь запрос клиента, чтобы изменить веб-сайт, как он, как, Изменить содержание ..Images ..etc, и все виды построены бритвой

Ex: это является страница цветовым по бритвой Я хочу, чтобы клиент администратора изменить названия & изображения & после сохранения отражает его в живом сайте

enter image description here

ответ

1

для того, чтобы сделать простую систему управления контентом в MVC, вы, вероятно, хотите организ е вещи так, что модель страницы представляет собой список элементов контента, так что ваше мнение перебирает элементы контента и отображает их

public partial class Content 
{ 
    public Content() 
    { 
     this.Pages = new HashSet<Page>(); 
    } 

    public int ContentID { get; set; } 
    public string ContentTitle { get; set; } 
    public string ContentImage { get; set; } 
    public string ContentImageAlt { get; set; } 
    public string ContentTitleLink { get; set; } 
    public string ContentImageLink { get; set; } 
    public string ContentBody { get; set; } 
    public string ContentTeaser { get; set; } 
    public System.DateTime ContentDate { get; set; } 
    public bool enabled { get; set; } 
    public int SortKey { get; set; } 
    public int ContentTypeID { get; set; } 

    public virtual ContentType ContentType { get; set; } 
    public virtual ICollection<Page> Pages { get; set; } 
} 

вид просто

 @foreach (var art in Model.Content) 
     { 
      <text> 
       @Html.DynamicPageContent(art) 
      </text> 
     } 

и помощник, который использует это

public static MvcHtmlString DynamicPageContent(this HtmlHelper helper, Content content) 
    { 
     if (content.ContentType==null) return new MvcHtmlString(content.ContentBody); 
     return content == null ? null : MvcHtmlString.Create( String.Format("\n<!--{0}: {1}({2})-->\n",content.ContentID, content.ContentType.ContentTypeDescription, content.ContentTypeID)+helper.Partial(content.ContentType.TemplateName, content).ToString().Trim()); 
    } 

где каждый Content.ContentType содержит имя шаблона, которое является именем представления MVC.

Таким образом, основной вид затем отображает несколько просмотров. Самый простой из моих частичных представлений просто содержит @ Html.Raw (content.Body), другие - более строгий контент, используя свойства класса Content. У меня есть один для управляемых изображений, один для новостных статей и т. Д.

Затем в вашем конце вы можете использовать элементы управления Kendo (или другие) для редактирования ContentBody, ContentTeaser и т. Д., Просто установив соответствующий ContentType, который называет частичное представление для его визуализации.

Надеюсь, это даст вам достаточно, чтобы вы начали.

+0

Спасибо :) моя проблема в том, что у меня есть встроенный веб-сайт для клиента, а теперь клиентский запрос на изменение веб-сайта по своему усмотрению, изменение содержимого ..Images ..etc и все виды, созданные бритвой – Jala

+1

вы могли бы сделать это напрямую, чтобы иметь некоторый код, который читал на стороне сервера взглядов бритвы, и позволял редактировать их - ведь они являются только файлами и скомпилированы во время выполнения. Однако переход от сайта, не связанного с контентом, к управляемому контентом, лучше всего сделать, введя CMS. В качестве предложения, Umbraco основано на Razor, позволяет редактировать шаблоны на стороне сервера и довольно приятно использовать редакторы. Тем не менее, его File: New-Project time! – Andiih