Я получаю приведенную ниже ошибку в Ocrhard CMS v.1.8.1.0 при создании новых статей.
Ошибка сервера в приложении '/'.
Элемент модели, передаваемый в словарь, имеет тип 'Contrib.ChoiceList.ViewModels.ChoiceListFieldViewModel', но для этого словаря требуется элемент модели типа 'Contrib.ChoiceList.ViewModels.ChoiceListFieldViewModel'.
Исходный файл: \ xyz.xyz.com \ orchard \ Live \ CMS \ Modules \ Orchard.News \ Views \ Content.Edit.cshtml
Строка: 16
Ошибка источника приСтрока 16:
Line 14: @if (Model.Content != null) {
Line 15: <div class="edit-item-content">
Line 16: @Display(Model.Content)
Line 17: </div>
Line 18: }
Сценарий:
В настоящее время у нас есть 2 примера веб-серверов Web01 и Web02, оба сервера используют один и тот же код из общего сетевого расположения (\ xyz.xyz.com \ orchard\ Live \ CMS \ Modules), на одном веб-сервере Web02 все работает нормально, но на другом веб-сервере Web01 я не могу создать новую статью.
Примечание: Я могу войти в CMSприложение, которое я могу исследовать приложение CMS, но проблема Oтолько при создании новых статей.
Создание URL-адреса новых статей:
http://Web01:5014/Admin/Contents/Create/FundswireArticle - получение ошибки
http://Web02:5014/Admin/Contents/Create/FundswireArticle - работаштраф
Если вы видите сообщение об ошибке
словарь имеет тип 'Contrib.ChoiceList.ViewModels.ChoiceListFieldViewModel' и требует словарьэлемент модели типа 'Contrib.ChoiceList.ViewModels.ChoiceListFieldViewModel' оба одинаковы.
'Contrib.ChoiceList.ViewModels.ChoiceListFieldViewModel' 'Contrib.ChoiceList.ViewModels.ChoiceListFieldViewModel '
Код ниже для Content.Edit.cshtml Страница:
@using Orchard.ContentManagement
@using Orchard.Core.Contents;
@Html.Partial("Content.SubmitButtons.OrchardNews")
<div class="edit-item">
<div class="edit-item-primary">
@if (Model.Content != null) {
<div class="edit-item-content">
@Display(Model.Content)
</div>
}
</div>
</div>
Ниже кода для Contrib.ChoiceList.cshtml переопределение страницы из модели Orchard Contrib.ChoiceList в мой пользовательский модуль.
@model Contrib.ChoiceList.ViewModels.ChoiceListFieldViewModel
@using System.Web.Mvc
@using FluentNHibernate.Utils
@using Orchard.Utility.Extensions;
@using SelectListItem = System.Web.WebPages.Html.SelectListItem
@{
//this template override hides the choice list field if there's only single option specified
var shouldDisplayField = !string.IsNullOrEmpty(Model.Options) && Model.Options.Split(';').Length > 1;
}
<fieldset style="display: @(shouldDisplayField ? "block":"none")">
<legend>@Model.Name</legend>
@if( Model.ListMode == "radio" )
{
foreach (var option in Model.Options.Split(';'))
{
if( string.IsNullOrWhiteSpace(option) )
{
<label>@Html.RadioButton("SelectedValue", "", string.IsNullOrWhiteSpace(Model.SelectedValue))<i>unset</i></label>
}
else
{
<label>@Html.RadioButton("SelectedValue", option, (option == Model.SelectedValue))@option</label>
}
}
}
else if (Model.ListMode == "dropdown")
{
var optionSplits = Model.Options.Split(';');
var displayNameSplits = Model.DisplayNames.Split(';');
var items = new List<SelectListItem>();
for (int i = 0; i < optionSplits.Count(); i++)
{
var item = new SelectListItem {Text = displayNameSplits[i], Value = optionSplits[i]};
items.Add(item);
}
@Html.DropDownListFor(m => m.SelectedValue, new SelectList(items, "Value", "Text", Model.SelectedValue));
@Html.ValidationMessageFor(m=>m.SelectedValue)
}
else if (Model.ListMode == "listBoxes")
{
var optionSplits = Model.Options.Split(';');
var displayNameSplits = Model.DisplayNames.Split(';');
var selectedValues = Model.SelectedValue == null ? string.Empty : Model.SelectedValue;
Model.SelectedValues = selectedValues.Split(';').ToList();
var items = new List<SelectListItem>();
for (int i = 0; i < optionSplits.Count(); i++)
{
var item = new SelectListItem {Text = displayNameSplits[i], Value = optionSplits[i]};
items.Add(item);
}
@Html.ListBoxFor(x => Model.SelectedValues, new SelectList(items, "Value", "Text", Model.SelectedValue), new { Multiple = "multiple" });
}
</fieldset>
Пожалуйста, помогите.Спасибо заранее.