该词典需要类型为 'System.Collections.Generic.IEnumerable 的模型项
this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
这是我的模型class
public class SurveyModel
{
public SurveyModel()
{
this.Name = string.Empty;
this.Url = string.Empty;
}
[Key]
public string Name { get; set; }
public int? ResponseCount { get; set; }
public string Url { get; set; }
public SurveyModel(SurveyMonkey.Containers.Survey survey)
{
Name = survey.Nickname;
ResponseCount = survey.ResponseCount;
Url = survey.AnalyzeUrl;
}
我的控制器
public class SurveysController : Controller
{
private SurveyMonkeyApi _surveyMonkey;
public SurveysController(ISurveyMonkeyApiFactory factory)
{
// _apiFactory = factory.Create();
}
public SurveysController()
{
}
// GET: Surveys
public ActionResult Index()
{
using (var api = new SurveyMonkeyApi("zgSdm04SEefy09ONaxV6b0z5rDOoRHXffGXMAasySfAyxUfCTN4x3AR9IyK5NVoRrBKB27bT-SMlbbL0dI2vUNYQiRNZqbslM0-KATC9JwWblgx4mieUwNxoDzC54lxe"))
{
IEnumerable<Survey> surveys = api.GetSurveyList();
return View(surveys.ToList());
}
}
}
我的观点
@model IEnumerable<SimpleSurveyTest.Models.SurveyModel>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.ResponseCount)
</th>
<th>
@Html.DisplayNameFor(model => model.Url)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ResponseCount)
</td>
<td>
@Html.DisplayFor(modelItem => item.Url)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Name }) |
@Html.ActionLink("Details", "Details", new { id=item.Name }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Name })
</td>
</tr>
}
</table>
我一直收到这个错误
The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[SurveyMonkey.Containers.Survey]'
但是这本词典需要 'System.Collections.Generic.IEnumerable1[SimpleSurveyTest.Models.SurveyModel]'
类型的模型项
在这个方法中
)
// 获取:调查
public ActionResult Index()
{
using (var api = new SurveyMonkeyApi("zgSdm04SEefy09ONaxV6b0z5rDOoRHXffGXMAasySfAyxUfCTN4x3AR9IyK5NVoRrBKB27bT-SMlbbL0dI2vUNYQiRNZqbslM0-KATC9JwWblgx4mieUwNxoDzC54lxe"))
{
IEnumerable<Survey> surveys = api.GetSurveyList();
return View(surveys.ToList());
}
}
交换
return View(surveys.ToList());
有
return View(surveys.Select(s => new SurveyModel(s)));
这是我的模型class
public class SurveyModel
{
public SurveyModel()
{
this.Name = string.Empty;
this.Url = string.Empty;
}
[Key]
public string Name { get; set; }
public int? ResponseCount { get; set; }
public string Url { get; set; }
public SurveyModel(SurveyMonkey.Containers.Survey survey)
{
Name = survey.Nickname;
ResponseCount = survey.ResponseCount;
Url = survey.AnalyzeUrl;
}
我的控制器
public class SurveysController : Controller
{
private SurveyMonkeyApi _surveyMonkey;
public SurveysController(ISurveyMonkeyApiFactory factory)
{
// _apiFactory = factory.Create();
}
public SurveysController()
{
}
// GET: Surveys
public ActionResult Index()
{
using (var api = new SurveyMonkeyApi("zgSdm04SEefy09ONaxV6b0z5rDOoRHXffGXMAasySfAyxUfCTN4x3AR9IyK5NVoRrBKB27bT-SMlbbL0dI2vUNYQiRNZqbslM0-KATC9JwWblgx4mieUwNxoDzC54lxe"))
{
IEnumerable<Survey> surveys = api.GetSurveyList();
return View(surveys.ToList());
}
}
}
我的观点
@model IEnumerable<SimpleSurveyTest.Models.SurveyModel>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.ResponseCount)
</th>
<th>
@Html.DisplayNameFor(model => model.Url)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ResponseCount)
</td>
<td>
@Html.DisplayFor(modelItem => item.Url)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Name }) |
@Html.ActionLink("Details", "Details", new { id=item.Name }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Name })
</td>
</tr>
}
</table>
我一直收到这个错误
The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[SurveyMonkey.Containers.Survey]'
但是这本词典需要 'System.Collections.Generic.IEnumerable1[SimpleSurveyTest.Models.SurveyModel]'
在这个方法中 ) // 获取:调查
public ActionResult Index()
{
using (var api = new SurveyMonkeyApi("zgSdm04SEefy09ONaxV6b0z5rDOoRHXffGXMAasySfAyxUfCTN4x3AR9IyK5NVoRrBKB27bT-SMlbbL0dI2vUNYQiRNZqbslM0-KATC9JwWblgx4mieUwNxoDzC54lxe"))
{
IEnumerable<Survey> surveys = api.GetSurveyList();
return View(surveys.ToList());
}
}
交换
return View(surveys.ToList());
有
return View(surveys.Select(s => new SurveyModel(s)));