我有一个叫PageModels的模型
public class PageModels
{
public int id { get; set; }
public string title { get; set; }
[DataType(DataType.MultilineText)]
[AllowHtml]
public string content { get; set; }
public int parent { get; set; }
[DataType(DataType.Date)]
public DateTime created_at { get; set; }
[DataType(DataType.Date)]
public DateTime updated_at { get; set; }
[DataType(DataType.Date)]
public DateTime published_at { get; set; }
}基于这个模型,我有一个叫做PagesController的控制器。这里我有一个方法:
public ActionResult showPage(string myTitle)
{
var query = from a in db.Pages
where a.title.Contains(myTitle)
select a;
return View(db.Pages.FirstOrDefault());
}我希望能够在返回值中获得具有myTitle中给定标题的页面的content属性。我还没能找到一个好的方法来做到这一点。
//编辑
我一直犯的那个错误都是我的错。在尝试修复我的问题和实现您的解决方案之间,我将方法返回类型更改为PageModels,这就是它不断抛出该错误的原因。现在它可以工作了,但是视图没有显示任何内容。我会试着自己解决这个问题的,谢谢你的帮助。
发布于 2013-05-02 21:38:30
您将获得对第一行中的变量query进行过滤的结果,但是您将向视图返回其他内容(从DB读取所有页面并从集合中获取第一项)。
您需要从变量query中获取项目,该变量包含过滤器的结果。
public ActionResult showPage(string myTitle)
{
var query = from a in db.Pages
where a.title.Contains(myTitle)
select a;
return View(query.FirstOrDefault());
}确保在FirstOrDefault之后检查null,否则在集合中没有记录时会遇到异常。
public ActionResult showPage(string myTitle)
{
var query = from a in db.Pages
where a.title.Contains(myTitle)
select a;
var item=query.FirstOrDefault();
if(item!=null)
return View(item);
else
return View("NotFound"); //Let's show a view about item not found
}https://stackoverflow.com/questions/16339357
复制相似问题