写作网址我在我的asp.net MVC应用程序url
一个问题: 我有两个控制器,两个动作。 在控制器Client
有一个asp.net MVC应用程序
public ActionResult Index(string path)
{
if (CompteModels.Connected)
{
/*
ProjetModels projets = new ProjetModels();
List<string> _noms_de_projets = projets.GetProjectsFromClient(CompteModels.Id_connected);
return View(_noms_de_projets);
* */
string realPath;
realPath = "C:/Projets/" + path;
realPath = realPath.Replace("Index/", "");
if (System.IO.File.Exists(realPath))
{
return base.File(realPath, "application/octet-stream");
}
else if (System.IO.Directory.Exists(realPath))
{
Uri url = Request.Url;
if (url.ToString().Last() != '/')
{
Response.Redirect("/Client/Index" + path + "/");
}
List<DirModel> dirListModel = new List<DirModel>();
IEnumerable<string> dirList = Directory.EnumerateDirectories(realPath);
foreach (string dir in dirList)
{
DirectoryInfo d = new DirectoryInfo(dir);
DirModel dirModel = new DirModel();
dirModel.DirName = Path.GetFileName(dir);
dirModel.DirAccessed = d.LastAccessTime;
dirListModel.Add(dirModel);
}
List<FileModel> fileListModel = new List<FileModel>();
IEnumerable<string> fileList = Directory.EnumerateFiles(realPath);
foreach (string file in fileList)
{
FileInfo f = new FileInfo(file);
FileModel fileModel = new FileModel();
if (f.Extension.ToLower() != "php" && f.Extension.ToLower() != "aspx"
&& f.Extension.ToLower() != "asp")
{
fileModel.FileName = Path.GetFileName(file);
fileModel.FileAccessed = f.LastAccessTime;
fileModel.FileSizeText = (f.Length < 1024) ? f.Length.ToString() + " B" : f.Length/1024 + " KB";
fileListModel.Add(fileModel);
}
}
ExplorerModel explorerModel = new ExplorerModel(dirListModel, fileListModel);
return View(explorerModel);
}
else
{
return Content(path + " is not a valid file or directory.");
}
}
else return RedirectToAction("Login", "Account");
}
结果是:
但在控制器Akeo
public ActionResult Index(string path)
{
if (CompteModels.Connected)
{
/*
ProjetModels projets = new ProjetModels();
List<string> _noms_de_projets = projets.GetProjectsFromClient(CompteModels.Id_connected);
return View(_noms_de_projets);
* */
string realPath;
realPath = "C:/Projets/" + path;
realPath = realPath.Replace("Index/", "");
if (System.IO.File.Exists(realPath))
{
return base.File(realPath, "application/octet-stream");
}
else if (System.IO.Directory.Exists(realPath))
{
Uri url = Request.Url;
if (url.ToString().Last() != '/')
{
Response.Redirect("/Akeo/Index" + path + "/");
}
List<DirModel> dirListModel = new List<DirModel>();
IEnumerable<string> dirList = Directory.EnumerateDirectories(realPath);
foreach (string dir in dirList)
{
DirectoryInfo d = new DirectoryInfo(dir);
DirModel dirModel = new DirModel();
dirModel.DirName = Path.GetFileName(dir);
dirModel.DirAccessed = d.LastAccessTime;
dirListModel.Add(dirModel);
}
List<FileModel> fileListModel = new List<FileModel>();
IEnumerable<string> fileList = Directory.EnumerateFiles(realPath);
foreach (string file in fileList)
{
FileInfo f = new FileInfo(file);
FileModel fileModel = new FileModel();
if (f.Extension.ToLower() != "php" && f.Extension.ToLower() != "aspx"
&& f.Extension.ToLower() != "asp")
{
fileModel.FileName = Path.GetFileName(file);
fileModel.FileAccessed = f.LastAccessTime;
fileModel.FileSizeText = (f.Length < 1024) ? f.Length.ToString() + " B" : f.Length/1024 + " KB";
fileListModel.Add(fileModel);
}
}
ExplorerModel explorerModel = new ExplorerModel(dirListModel, fileListModel);
return View(explorerModel);
}
else
{
return Content(path + " is not a valid file or directory.");
}
}
else return RedirectToAction("Login", "Account");
}
结果是这样一个例外:
的观点是:
那么,什么是结果之间的差异的原因是什么?我怎样才能避免这个错误?
PLZ看到我的编辑 –
看风景PLZ http://pastebin.com/SMhbnWtg –
MVC,可以让你浏览到的路径和调用之间混淆了'索引'行动。你能发布你的路由配置吗? –