お問い合わせエリアに移動すると、アプリケーションはこれを返します。現在、作業エリア、パンフレット、お問い合わせ、およびフォローする 3 分の 1 (支払い) が必要です。パンフレット エリアに移動すると、エラーは表示されません。
以下に示すように、エラーがスローされているビューにエリアパラメーターを追加しようとしました。文字列を空白のままにし、照会を使用します。
@Html.Action("DropDownList", "Enquiry Base", new { type = "titles", areas = ""})
@Html.Action("DropDownList", "Enquiry Base", new { type = "titles", areas = "Enquiry"})
どちらもエラーを解決していません。
現在、ドロップダウンリストを表示するために、ルートにビューモデル、部分ビュー、ユニティ ブートストラップがあります。
ItemsViewModel
public class DropDownListItem
{
public string Text { get; set; }
public string Value { get; set; }
}
public class ItemsViewModel
{
private readonly List<DropDownListItem> _items;
public string SelectedItem { get; set; }
public IEnumerable<SelectListItem> Items
{
get
{
var allItems = _items.Select(i => new SelectListItem
{
Value = i.Value,
Text = i.Text
});
return DefaultItem.Concat(allItems);
}
}
public IEnumerable<SelectListItem> DefaultItem
{
get
{
return Enumerable.Repeat(new SelectListItem
{
Value = "",
Text = Mui.please_select
}, count: 1);
}
}
public ItemsViewModel()
{
}
public ItemsViewModel(List<DropDownListItem> items, string selected)
{
_items = items;
SelectedItem = selected;
}
ドロップダウンパーシャル
@using MBS.Exec.Mvc.ViewModels
@model ItemsViewModel
@Html.DropDownListFor(m => m.SelectedItem, Model.Items)
ブートストラップ
public static class Bootstrapper
{
public static void Initialise()
{
var container = BuildUnityContainer();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
}
private static IUnityContainer BuildUnityContainer()
{
var container = new UnityContainer();
container.RegisterType<IBrochureModel, MilitaryBrochureViewModel>();
container.RegisterType<IBrochureModel, GeneralBrochureViewModel>();
container.RegisterType<IBrochureModel, StandardBrochureViewModel>();
container.RegisterType<IBrochureModel, StudentBrochureViewModel>();
container.RegisterType<IEnquiryModel, MilitaryEnquiryViewModel>();
container.RegisterType<IEnquiryModel, GeneralEnquiryViewModel>();
container.RegisterType<IEnquiryModel, StandardEnquiryViewModel>();
container.RegisterType<IEnquiryModel, StudentEnquiryViewModel>();
container.RegisterType<IFormData, FormData>();
container.RegisterType<IRESTExecutiveService, RESTExecutiveService>();
return container;
}
領域でドロップダウンを使用するために、EnquiryBaseController で DropDownList ActionResult を作成しました。
[ChildActionOnly]
public ActionResult DropDownList(string type, string selected)
{
if (type == "titles")
{
var items = new ItemsViewModel(
(from g in _service.GetTitles() select new DropDownListItem { Text = g.Value, Value = g.Value }).ToList(),
selected);
return PartialView("DropDownPartial", items);
}
else if (type == "leadSources")
{
var items = new ItemsViewModel(
(from g in _service.GetLeadSources() select new DropDownListItem { Text = g.Value, Value = g.Value }).ToList(),
selected);
return PartialView("DropDownPartial", items);
}
return null;
}
次に、上記の @Html.Action コードを使用して、ドロップダウンをビューにレンダリングします。
このエラーがスローされる理由は誰にもわかりますか?