ASP.NET MVC网页无法加载,显示“找不到该资源”的错误信息。

37

我遇到了问题,当我尝试打开我的ASP.NET MVC应用程序时,我得到了ASP.NET错误页面,上面写着:

服务器错误 '/' 应用程序。

资源无法找到。描述:HTTP 404。您要查找的资源(或其某个依赖项)可能已被删除、更改名称或暂时不可用。请检查以下URL,并确保其拼写正确。

请求的URL: /EventScheduler/account.aspx/login

版本信息:Microsoft .NET Framework 版本:2.0.50727.3053;ASP.NET 版本:2.0.50727.3053**

我正在使用此博客帖子中的URL技巧,这就是为什么在URL中有.aspx的原因:

http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

在我的另一个沙盒服务器上它可以工作(不是开发机),现在我刚刚将其部署到我的生产站点作为新的虚拟目录,但由于某种原因它似乎实际上正在寻找一个.aspx文件。

有什么想法吗?我想我一定忘记了一步。

23个回答

0

对我来说,解决方法如下:

出现这种情况的原因之一是您在 Web 项目属性下没有设置起始页或设置了错误的起始页。所以请按照以下步骤操作:

1- 右键单击您的 MVC 项目

2- 选择“属性”

3- 选择“Web”选项卡

4- 选择“指定页面”

假设您有一个名为 HomeController 的控制器和一个名为 Index 的操作方法,请在与“指定页面”单选按钮对应的文本框中输入“home/index”。

现在,如果您启动您的 Web 应用程序,它将带您进入由 HomeController 的 Index 操作方法呈现的视图。


0
在我的情况下,我需要替换这个:
@Html.ActionLink("Return license", "Licenses_Revoke", "Licenses", new { id = userLicense.Id }, null)

使用这个:

<a href="#" onclick="returnLicense(event)">Return license</a>

<script type="text/javascript">
    function returnLicense(e) {
        e.preventDefault();

        $.post('@Url.Action("Licenses_Revoke", "Licenses", new { id = Model.Customer.AspNetUser.UserLicenses.First().Id })', getAntiForgery())
            .done(function (res) {
                window.location.reload();
            });
    }
</script>

即使我不理解原因,欢迎提出建议!


-1

I had the same problem caused by my script below. The problem was caused by url variable. When I added http://|web server name|/|application name| in front of /Reports/ReportPage.aspx ... it started to work.

<script>
    $(document).ready(function () {
        DisplayReport();
    });

    function DisplayReport() {
        var url = '/Reports/ReportPage.aspx?ReportName=AssignmentReport';

        if (url === '')
            return;
        var myFrame = document.getElementById('frmReportViewer');
        if (myFrame !== null) {
            if (myFrame.contentWindow !== null && myFrame.contentWindow.location !== null) {
                myFrame.contentWindow.location = url;
            }
            else {
                myFrame.setAttribute('src', url);
            }
        }
    }
</script>


如果您提出的解决方案是在URL开头添加服务器/应用程序名称,则您的代码片段是错误和误导的。 - Scott Perham
好的,同意。这是我在控制器端所做的: public class ReportsController : Controller { public ActionResult Index(string ReportName) { int i = Request.Url.AbsoluteUri.IndexOf("/Admin/Reports"); string reportUri = Request.Url.AbsoluteUri.Substring(0, i); reportUri += "/Reports/ReportPage.aspx?ReportName=" + ReportName; return View((object) reportUri); } } 和视图端: @model string function DisplayReport() { var url = '@Model'; if (url === '') return; - ZagorTeNej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接