我创建了一个网络应用程序,您可以在其中为一个人提供推荐,一个人可以有多个推荐,并且我想要查看特定人员的所有推荐。一旦我点击链接查看建议,我就会收到错误消息:
' KeyValuePair<`string,Recommendation>不包含'建议'的定义并没有推广方法'建议'接受类型' KeyValuePair'的第一个参数。可以找到。
这是我的一些代码,希望有人可以帮我解决这个问题,我已经坚持了几个小时。
推荐控制器
using Lab3Models.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Lab3Models.Controllers
{
public class RecommendationController : Controller
{
private static IDictionary<string, Person> _people = null;
....
public ActionResult Show(string id)
{
if (Session["people"] != null)
{
_people = (Dictionary<string, Person>)Session["people"];
}
else
{
_people = new Dictionary<string, Person>();
Session["people"] = _people;
}
if (!_people.ContainsKey(id))
{
return HttpNotFound("Sorry, but can't find id: " + id);
}
return View(_people[id]);
}
}
}
&#13;
public class Person
{
public string Id { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public ICollection<Recommendation> Recommendations { get; set; }
public Person()
{
Recommendations = new List<Recommendation>();
}
}
public class Recommendation
{
public string Id { get; set; }
public int Rating { get; set; }
public string Narrative { get; set; }
public string RecommenderName { get; set; }
public Person ThePerson { get; set; }
}
&#13;
显示视图
@model IDictionary<string, Lab3Models.Models.Recommendation>
<h2>@ViewBag.Title</h2>
<table class="table">
<tr>
<th>
Id
</th>
<th>
Rating
</th>
<th>
Narrative
</th>
<th>
Recommender's Name
</th>
</tr>
@foreach (var item in Model)
{
foreach (var rec in item.Recommendations)
{
<tr>
<td>
@item.Value.Id
</td>
<td>
@item.Value.Rating
</td>
<td>
@item.Value.Narrative
</td>
<td>
@item.Value.RecommenderName
</td>
</tr>
}
}
</table>
&#13;
拜托,任何帮助都会很棒。
修改 但是,对字典进行迭代并不是我的问题,我已经遍历了我的人字典,以显示我已添加到列表中的所有人。我的问题是显示原始人字典中特定人的推荐列表。