【发布时间】:2015-05-06 06:47:34
【问题描述】:
我在博客的主布局中收到来自 @Html.Action("getCategory", "Blogs") 的此错误。
错误是:
System.Web.dll 中出现“System.Web.HttpException”类型的异常,但未在用户代码中处理 附加信息:执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”的子请求时出错。
这是我的控制器:
public ActionResult getCategory()
{
var categories = _repo.getBlogs().Select(c => new
{
c.Category
}).ToList();
return PartialView("_category", categories);
}
这是我的部分观点:
@model IEnumerable<MainSite.Data.Blog>
<div class="sw_categories">
<div class="sw_title">
<h4>Categories</h4>
</div>
<ul class="arrows_list">
@foreach (var c in Model)
{
<li><a href="#">@c</a></li>
}
</ul>
</div>
我是 ASP.NET MVC 的新手,谁能向我解释一下这个错误以及如何解决这个问题?
【问题讨论】:
-
getCategory()是返回博客还是类别?根据您的部分,它应该是 Blogs -
您返回了一组匿名对象(它们是内部的,因此无论如何都无法在视图中访问)但您的视图期待
IEnumerable<Blog> -
@Mackan 哎呀我从来没有注意到这一点。我改变了类型,它现在可以工作了。您能否在下面发帖,以便我将其标记为已回答?非常感谢。
-
@StephenMuecke 我很好奇您的陈述“...匿名对象(它们是内部的,因此无论如何都无法在视图中访问)”。根据 In206 的评论,当他更改 type 时,它似乎绑定得很好(并且我假设部分模型类型)。我不明白你写的“内部”位,当我不明白时,我想学习:) 最初我只是将其视为错误的返回类型:类别而不是博客。但是,正如我所解释的那样,您是说两种方式都没有类别列表(?)。
-
我没有意识到
Select(c => new { c.Category })在您的情况下会返回Blog的集合(或者是Category并且您更改了视图中模型的定义?)。无论如何,我所指的是this answer
标签: c# asp.net-mvc asp.net-mvc-5