MVC 4 Controller JsonResult
本文关键字:JsonResult Controller MVC | 更新日期: 2023-09-27 18:14:41
我有一个问题与我的控制器在MVC。我想循环在我的JsonResult GetAfmeldingen
使用foreach.
但是我所做的不会进入我的大脑这是我现在的代码
public JsonResult GetJsonAfmeldingen()
{
if (Functions.HasLoginCookie())
{
if (Models.Taken.ActID > 0)
{
foreach (var item in Talent.Afmelding.Fetch(null, Models.Taken.ActID, null, null))
{
return Json(item.Participant.CompleteName, JsonRequestBehavior.AllowGet);
}
return Json("Empty ?? ID = " + Models.Taken.ActID + "", JsonRequestBehavior.AllowGet);
}
else
{
return Json(null, JsonRequestBehavior.AllowGet);
}
}
else
{
return Json(null, JsonRequestBehavior.AllowGet);
}
}
在本例中,当列表中的第一条记录命中时,我返回一个JsonResult
。我看了看它是否有效,但它不起作用。id被填满了,但我在这里遗漏了什么?我是MVC新手
这可能行不通,因为您无法进入foreach。
public JsonResult GetJsonAfmeldingen()
{
if (Functions.HasLoginCookie())
{
//This one is probably not filled.
if (Models.Taken.ActID > 0)
{
这是一个可能的解决方案:
public JsonResult GetJsonAfmeldingen(int actID)
{
if (Functions.HasLoginCookie())
{
//Now it is filled if you post it correctly.
if (actID > 0)
{
之后,尝试在较小的范围内测试它。尝试在这行设置一个断点,并查看列表是否被填充。
var listAfmeldingen = Talent.Afmelding.Fetch(null, Models.Taken.ActID, null, null);
//Breakpoint here
int count = listAfmeldingen.Count;
foreach (var item in listAfmeldingen)
{
return Json(item.Participant.CompleteName, JsonRequestBehavior.AllowGet);
}
也看看你的路由,我用这个:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这将在foreach的第一次循环时终止,这是您想要的吗?
foreach (var item in Talent.Afmelding.Fetch(null, Models.Taken.ActID, null, null))
{
return Json(item.Participant.CompleteName, JsonRequestBehavior.AllowGet);
}