У меня есть два вида: создание и редактирование.Оба имеют строго типизированный пользовательский элемент управления шаблона редактора.
У меня есть редактор jQuery wysiwyg в шаблоне общего редактора, и он прекрасно работает без ошибок в представлении создания, но когда я загружаю представление редактирования, Firefox сообщает, что «$ не определено» «jqueryне определено "и т. д.
Кроме того, изображения из site.master в представлении редактирования не загружаются, несмотря на то, что пути в источнике страницы идентичны между ним и представлением создания.Я использую редактор WYSIWYG для сохранения HTML в базе данных, и он загружается в текстовое поле в представлении редактирования, это может быть проблемой?
Соответствующий код ниже:
Создать представление
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MHNHub.ViewModels.NewsViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Create
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HeaderContent" runat="server">
<strong>Create</strong>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm())
{%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>News Article</legend>
<div id="form_wrapper">
<div id="form_top">
<p class="formTitle">
New Post</p>
<p class="requiredField">
<span class="valid">*</span>Required Field</p>
</div>
<div id="form_mid">
<% if (Model.HasError)
{ %>
<em class="error">
<%: Model.ErrorMessage %></em>
<%} %>
<%: Html.EditorFor(model => model.NewsArticle)%>
<div id="form_buttons">
<input type="submit" value=" " id="Create" />
<%: Html.ActionLink(" ", "Index", "News", null, new{ id = "BackToList"}) %>
</div>
</div>
<div id="form_bottom">
</div>
</div>
</fieldset>
<% } %>
</asp:Content>
Создать действие
//
// GET: /News/Create
public ActionResult Create()
{
var newsArticle = new NewsArticle();
var viewModel = new NewsViewModel()
{
NewsArticle = newsArticle
};
return View(viewModel);
}
Вид редактирования:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MHNHub.ViewModels.NewsViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Edit
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HeaderContent" runat="server">
<strong>Edit</strong>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm("Edit", "News", new { id = Model.NewsArticle.ArticleID }))
{%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>News Article</legend>
<div id="form_wrapper">
<div id="form_top">
<p class="formTitle">
Existing Post</p>
<p class="requiredField">
<span class="valid">*</span>Required Field</p>
</div>
<div id="form_mid">
<% if (Model.HasError)
{ %>
<em class="error">
<%: Model.ErrorMessage %></em>
<%} %>
<%: Html.EditorFor(model => model.NewsArticle)%>
<div id="form_buttons">
<input type="submit" value=" " id="Update" />
<%: Html.ActionLink(" ", "Index", "News", null, new{ id = "BackToList"}) %>
</div>
</div>
<div id="form_bottom">
</div>
</div>
</fieldset>
<% } %>
</asp:Content>
Действие редактирования
//
// GET: /News/Edit/5
public ActionResult Edit(int id)
{
var viewModel = new NewsViewModel()
{
NewsArticle = mhndb.NewsArticles.Single(n => n.ArticleID == id)
};
TempData["NewsViewModel"] = viewModel;
return View(viewModel);
}
Общий шаблон редактирования
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MHNHub.Models.NewsArticle>" %>
<div class="editor-label">
Article Title<span class="valid">*</span>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Title) %>
<%: Html.ValidationMessageFor(model => model.Title) %>
</div>
<div class="editor-label">
Subtitle
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Subtitle) %>
<%: Html.ValidationMessageFor(model => model.Subtitle) %>
</div>
<div class="editor-label">
Description
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Description) %>
<%: Html.ValidationMessageFor(model => model.Description) %>
</div>
<div class="editor-label">
Article Content <span class="valid">*</span>
</div>
<div class="editor-field">
<%: Html.TextAreaFor(model => model.ArticleContent, new{id="wysiwyg", name="wysiwyg"}) %>
<%: Html.ValidationMessageFor(model => model.ArticleContent) %>
</div>
<div class="editor-label">
Category ID
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.CategoryID) %>
<%: Html.ValidationMessageFor(model => model.CategoryID) %>
</div>
Скрипты с сайта. Master
<link href="../../Content/jquery.cleditor.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.cleditor.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#wysiwyg").cleditor();
});
</script>