Реализация CKEditor MVC 3

Изучаю mvc, и я пытаюсь реализовать страницу с 3 полями Имя-Фамилия-Описание Итак, в моем обучающем примере я загружаю сотрудников и у меня должна быть возможность создавать и редактировать их.

В описании должен использоваться CKEditor.

  • Я могу загрузить сотрудников
  • Я могу сохранить их

Однако я не могу сохранить описание,например, все, что пользователь вводит в поле описания. Я видел несколько примеров в сети, но ни один из них не содержит решения для загрузки, поскольку я не могу собрать его вместе. Я нашел этого парня с классным помощником по html, но, похоже, не могу собрать пример http://www.andrewbarber.com/post/CKEditor-Html-Helpers-ASPNET-MVC-Razor-Views.aspx

Проблемы:

  1. Как получить значение, введенное внутри ckEditor.
  2. В моей viewModel описание все время равно null
  3. ckEditor довольно сильно замедляет создание страницы. Как я могу сделать это быстрее? Мне не нужны все параметры.
  4. Есть ли там пример использования mvc3, который я могу использовать в качестве шаблона.

Я выполнил всю установку следующим образом:

Create.chtml

            @model MvcApplicationCKEditorIntegration.Models.EmployeeViewModel
        @{
            ViewBag.Title = "Create";
        }
        

Create

@using (Html.BeginForm()) { @Html.ValidationSummary(true)
EmployeeViewModel
@Html.LabelFor(model => model.FirstName)
@Html.EditorFor(model => model.FirstName) @Html.ValidationMessageFor(model => model.FirstName)
@Html.LabelFor(model => model.LastName)
@Html.EditorFor(model => model.LastName) @Html.ValidationMessageFor(model => model.LastName)
@Html.LabelFor(model => model.Email)
@Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)
@Html.LabelFor(model => model.PhotoPath)
@Html.EditorFor(model => model.PhotoPath) @Html.ValidationMessageFor(model => model.PhotoPath)
@Html.LabelFor(model => model.Description)

}
@Html.ActionLink("Back to List", "Index")

EmployeeController

         public class EmployeeController : Controller
            {
                public ActionResult Index()
                {
                    var employeeRepository=new EmployeeRepository();
                    var employees = employeeRepository.GetAll();
                    var employeeList = employees.Select(employee => new EmployeeViewModel
                                                                        {
                                                                            EmployeeId = employee.EmployeeId,
                                                                            FirstName = employee.FirstName,
                                                                            LastName = employee.LastName,
                                                                            PhotoPath = employee.PhotoPath,
                                                                            Email = employee.Email,
                                                                            Description = employee.Description
                                                                        }).ToList();

                    return View(employeeList);
                }

                public ActionResult Create()
                {

                    return View(new EmployeeViewModel());
                } 

                [HttpPost]
                public ActionResult Create(EmployeeViewModel vm)
                {
                   if(ModelState.IsValid)
                   {
                       var employeeRepository=new EmployeeRepository();
                       var emp=new Employee
                                        {
                                            FirstName = vm.FirstName,
                                            LastName = vm.LastName,
                                            Description = vm.Description,
                                            Email = vm.Email,
                                            PhotoPath = vm.PhotoPath
                                        };
                       employeeRepository.Insert(emp);
                       return RedirectToAction("Index");

                   }
                    return View(vm);
                }




            }
        }

] Спасибо за любые предложения !!!

ОТредактированный пример с использованием помощника CKEditor

    @using MvcApplicationCKEditorIntegration.Helpers
    @model MvcApplicationCKEditorIntegration.Models.EmployeeViewModel
    @{
        ViewBag.Title = "Create";
    }
    

Create

@Html.CKEditorHeaderScripts() @using (Html.BeginForm()) { @Html.ValidationSummary(true)
EmployeeViewModel
@Html.LabelFor(model => model.FirstName)
@Html.EditorFor(model => model.FirstName) @Html.ValidationMessageFor(model => model.FirstName)
@Html.LabelFor(model => model.LastName)
@Html.EditorFor(model => model.LastName) @Html.ValidationMessageFor(model => model.LastName)
@Html.LabelFor(model => model.Email)
@Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)
@Html.LabelFor(model => model.PhotoPath)
@Html.EditorFor(model => model.PhotoPath) @Html.ValidationMessageFor(model => model.PhotoPath)
@Html.LabelFor(model => model.Description)
@Html.CKEditorFor(model=>model.Description)

}
@Html.ActionLink("Back to List", "Index")

5
задан Cœur 18 March 2018 в 05:01
поделиться