【发布时间】:2019-07-08 21:14:44
【问题描述】:
我在 ASP.NET MVC 中创建的项目有两个区域,它的结构在图片上:
当我启动它时,它会根据用户的 IP 地址采用两条路由之一。代码本身是这样的:
if (myRole.Count == 0){
return View ("~/Views/Shared/UserNotFound.cshtml");
}if ((String.Equals(myRole[0], "Менеджер")) || ((myRole.Count > 1))){
return RedirectPermanent("/Manager/ManagerHome/Index");
}else{
return RedirectPermanent("/Practitioner/PractitionerHome/Index");
}
但是当我发布项目时,它的结构完全不同:
当然,区域中没有“Controllers”、“Files”和“Models”之类的文件夹(例如,图中显示的Manager 区域)。因此,当我在 Web 浏览器中运行项目时,出现 404 错误。什么可能导致问题?我应该更改路径还是项目没有正确发布?
PS:不知这是否会导致问题:这个项目已经重新发布——我是第一次发布,在iis中删除并重新发布。这是我第一次使用 ASP.NET MVC 发布的应用程序,所以我对这种行为的原因一无所知。
感谢船长的问题,我提供了一些附加信息:该项目有许多文件夹,其中包括“区域”。但是当我使用 localhost/Aspid 在 localhost(项目名称是 Aspid 并且它位于 intepub\wwwroot\Aspid 内)上运行它时,它会转到 localhost/Manager/ManageHome - 我在其中一个控制器中编写的路径。但是项目的结构缺少 Manage/ManagerHome 文件夹。发布后应该怎么做才能成功运行?
【问题讨论】:
-
绝对正确,您没有像控制器类这样的 cs 文件。因为它们是在 bin 文件夹中编译的。看来你还有一个问题。即使您直接从浏览器打开 url '/Manager/ManagerHome/Index',是否也会收到 404 错误?
-
船长,谢谢您的回答。如您所见,没有文件夹 /Manager/ManagerHome 等。只有 /Manager/Views。此外,当我在 localhost(在 iis 中)上运行我的应用程序时,它不会运行所有路径,而是从以下区域之一的文件夹开始:localhost/Manager/ManagerHome,它不存在。
标签: c# asp.net-mvc iis asp.net-mvc-areas