Asp.net mvc 3 在ASP.NET应用程序中检测到无法访问的代码
我在Visual Studio 2010中收到一条“检测到无法访问的代码”消息,用于我的ASP.NET应用程序中的搜索方法。 方法如下:Asp.net mvc 3 在ASP.NET应用程序中检测到无法访问的代码,asp.net-mvc-3,c#-4.0,Asp.net Mvc 3,C# 4.0,我在Visual Studio 2010中收到一条“检测到无法访问的代码”消息,用于我的ASP.NET应用程序中的搜索方法。 方法如下: public ActionResult SearchIndex(string artist, string albumGenre, string searchString) { var GenreList = new List<string>(); var GenreQuery = from d in s
public ActionResult SearchIndex(string artist, string albumGenre, string searchString)
{
var GenreList = new List<string>();
var GenreQuery = from d in storeDB.Albums orderby d.Genre.Name select d.Genre.Name;
GenreList.AddRange(GenreQuery.Distinct());
ViewBag.albumGenre = new SelectList(GenreList);
var ArtistList = new List<string>();
var ArtistQuery = from a in storeDB.Artists orderby a.Name select a.Name;
ArtistList.AddRange(ArtistQuery.Distinct());
ViewBag.artist = new SelectList(ArtistList);
var albums = from m in storeDB.Albums select m;
if (string.IsNullOrEmpty(artist))
{
return View(albums);
}
else
{
return View(albums.Where(f => f.Artist.Name == artist));
}
if (!String.IsNullOrEmpty(searchString))
{
return View(albums.Where(s => s.Title.Contains(searchString)));
}
if (string.IsNullOrEmpty(albumGenre))
{
return View(albums);
}
else
{
return View(albums.Where(x => x.Genre.Name == albumGenre));
}
}
我哪里出错了?上一个
if
在其两个分支中都有return
语句,因此您的函数在到达第二个if
if之前将始终返回上一个if
在其两个分支中都有return
语句,因此,在到达第二个if
之前,您的函数将始终返回,因为在上一个if else
块中,您肯定会从if
或else
块返回并放弃您的方法
因此,在任何情况下都不会执行以下代码。因为在前面的
if else
块中,您肯定会从if
或else
块返回并放弃您的方法
因此,您的以下代码在任何情况下都不会执行。以下是更正后的代码
public ActionResult SearchIndex(string artist, string albumGenre, string searchString)
{
var GenreList = new List<string>();
var GenreQuery = from d in storeDB.Albums orderby d.Genre.Name select d.Genre.Name;
GenreList.AddRange(GenreQuery.Distinct());
ViewBag.albumGenre = new SelectList(GenreList);
var ArtistList = new List<string>();
var ArtistQuery = from a in storeDB.Artists orderby a.Name select a.Name;
ArtistList.AddRange(ArtistQuery.Distinct());
ViewBag.artist = new SelectList(ArtistList);
var albums = from m in storeDB.Albums select m;
if (!string.IsNullOrEmpty(artist))
{
return View(albums.Where(f => f.Artist.Name == artist));
}
else if (!String.IsNullOrEmpty(searchString))
{
return View(albums.Where(s => s.Title.Contains(searchString)));
}
else if (!string.IsNullOrEmpty(albumGenre))
{
return View(albums.Where(x => x.Genre.Name == albumGenre));
}
else
{
return View(albums);
}
}
public ActionResult SearchIndex(字符串艺术家、字符串专辑类型、字符串搜索字符串)
{
var GenreList=新列表();
var GenreQuery=来自storeDB.Albums orderby d.Genre.Name选择d.Genre.Name;
GenreList.AddRange(GenreQuery.Distinct());
ViewBag.albumGene=新建选择列表(GenreList);
var ArtistList=新列表();
var ArtistQuery=从storeDB.Artists orderby a.Name中选择a.Name;
AddRange(ArtistQuery.Distinct());
ViewBag.artist=新选择列表(ArtistList);
var albums=来自storeDB中的m。albums选择m;
如果(!string.IsNullOrEmpty(艺术家))
{
返回视图(相册,其中(f=>f.Artist.Name==Artist));
}
如果(!String.IsNullOrEmpty(searchString))为else
{
返回视图(albums.Where(s=>s.Title.Contains(searchString));
}
如果(!string.IsNullOrEmpty(AlbumType))
{
返回视图(albums.Where(x=>x.Genre.Name==AlbumGene));
}
其他的
{
返回视图(相册);
}
}
以下是更正后的代码
public ActionResult SearchIndex(string artist, string albumGenre, string searchString)
{
var GenreList = new List<string>();
var GenreQuery = from d in storeDB.Albums orderby d.Genre.Name select d.Genre.Name;
GenreList.AddRange(GenreQuery.Distinct());
ViewBag.albumGenre = new SelectList(GenreList);
var ArtistList = new List<string>();
var ArtistQuery = from a in storeDB.Artists orderby a.Name select a.Name;
ArtistList.AddRange(ArtistQuery.Distinct());
ViewBag.artist = new SelectList(ArtistList);
var albums = from m in storeDB.Albums select m;
if (!string.IsNullOrEmpty(artist))
{
return View(albums.Where(f => f.Artist.Name == artist));
}
else if (!String.IsNullOrEmpty(searchString))
{
return View(albums.Where(s => s.Title.Contains(searchString)));
}
else if (!string.IsNullOrEmpty(albumGenre))
{
return View(albums.Where(x => x.Genre.Name == albumGenre));
}
else
{
return View(albums);
}
}
public ActionResult SearchIndex(字符串艺术家、字符串专辑类型、字符串搜索字符串)
{
var GenreList=新列表();
var GenreQuery=来自storeDB.Albums orderby d.Genre.Name选择d.Genre.Name;
GenreList.AddRange(GenreQuery.Distinct());
ViewBag.albumGene=新建选择列表(GenreList);
var ArtistList=新列表();
var ArtistQuery=从storeDB.Artists orderby a.Name中选择a.Name;
AddRange(ArtistQuery.Distinct());
ViewBag.artist=新选择列表(ArtistList);
var albums=来自storeDB中的m。albums选择m;
如果(!string.IsNullOrEmpty(艺术家))
{
返回视图(相册,其中(f=>f.Artist.Name==Artist));
}
如果(!String.IsNullOrEmpty(searchString))为else
{
返回视图(albums.Where(s=>s.Title.Contains(searchString));
}
如果(!string.IsNullOrEmpty(AlbumType))
{
返回视图(albums.Where(x=>x.Genre.Name==AlbumGene));
}
其他的
{
返回视图(相册);
}
}