C# 检查值是否为null C时重新引导循环#

C# 检查值是否为null C时重新引导循环#,c#,asp.net,list,redirecttoaction,C#,Asp.net,List,Redirecttoaction,我得到的结果基于一个ID,该ID通过URL传递到控制器,例如Site/View/12-这将返回所有匹配12的结果 但是,如果没有结果,我想重新定向回索引页面,该页面也有搜索字段 public new ActionResult View(string ID = "") { XDocument xml = XDocument.Load(xmlPath); var bikes = (xml).ToList(); if (!bikes.Any()) {

我得到的结果基于一个ID,该ID通过URL传递到控制器,例如Site/View/12-这将返回所有匹配12的结果

但是,如果没有结果,我想重新定向回索引页面,该页面也有搜索字段

public new ActionResult View(string ID = "")
{
    XDocument xml = XDocument.Load(xmlPath);
    var bikes = (xml).ToList();

    if (!bikes.Any())
    {
        return RedirectToAction("Index", "Home");
    }
    else
    {
        return View(bikes);
    }
}
但是,在尝试查看任何页面(/Add、/Index等)时,我得到一个“此网页有重定向循环”错误

我不太清楚发生了什么,因为据我所知,查看这些页面甚至不应该触发
ActionResult View()中的任何内容。另外,
RedirectToAction
将进入
索引
——因此我无法确定循环的位置

如果我删除行
return RedirectToAction(“Index”,“Home”)应用程序功能正常

欢迎您提供任何建议,谢谢

(编辑)以下是索引控制器:

public ActionResult Index()
{
    return View();
}
这是RouteConfig.cs文件:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

控制器有一个View方法来返回视图,但是您的Action方法也被命名为View,这就是它被卡住的地方。将您的操作更改为:

[ActionName("View")]
public new ActionResult ViewItem(string ID = "")

一切都应该正常。

控制器有一个View方法来返回视图,但是您的操作方法也被命名为View,这就是它被卡住的地方。将您的操作更改为:

[ActionName("View")]
public new ActionResult ViewItem(string ID = "")

一切都应该正常。

您的操作名为
View
。当你这样做的时候

public ActionResult Index()
{
    return View();
}
它默认为您的方法(可选参数使其有效):


如果将鼠标悬停在
returnview()
intellisense上,它将告诉您调用的是哪个
View()
。重命名您的
视图
操作,您将看到intellisense更改了引用的
视图()
,它应该可以正常工作。使用一个属性将您的操作保持为
视图
,似乎以后会引起另一个令人困惑的问题。

您的操作名为
视图
。当你这样做的时候

public ActionResult Index()
{
    return View();
}
它默认为您的方法(可选参数使其有效):


如果将鼠标悬停在
returnview()
intellisense上,它将告诉您调用的是哪个
View()
。重命名您的
视图
操作,您将看到intellisense更改了引用的
视图()
,它应该可以正常工作。使用一个属性将您的操作保持为
视图
似乎会在以后引起另一个令人困惑的问题。

在索引页上发布代码,我打赌那里会发生一些事情。也可以发布您的RouteConfig(或任何您配置路由的地方)。谢谢大家,我刚刚更新了我的post索引页面的代码,我敢打赌那里一定发生了一些事情。也可以发布你的RouteConfig(或任何你配置路线的地方)。谢谢你们,我刚刚更新了我的post谢谢!实际上,我已经使用了Brian的解决方案,因为它不需要我重新编写任何代码,但在将来,我将确保我不会使用“视图”作为ActionResult的名称谢谢!实际上,我使用了Brian的解决方案,因为它不需要我重新编写任何代码,但在将来,我将确保我不会使用“视图”作为ActionResult的名称