【问题标题】:Asp.Net MVC Url.Action gives 404 resource not found errorAsp.Net MVC Url.Action 给出 404 resource not found 错误
【发布时间】:2016-08-30 19:38:06
【问题描述】:

我在使用 Url.Action is ASP.net MVC 5 时遇到此错误

“/”应用程序中的服务器错误。 无法找到该资源。 说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。 请求的网址:/Home/AddPhoto

这是视图的相关部分。以下 url.action 调用失败:@Url.Action("AddPhoto", "Home")

  </div>
        @using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
        {
            <div class="col-md-8">
                <textarea class="search-query span2 text-center" rows="13" style="width: 2200px; height: 50px;" id="searchText" name="searchText" placeholder="What is on your mind?" type="text" value="What is on your mind? "></textarea>
                <br />
                <a href="#" id="addphoto" onclick="window.location.href='@Url.Action("AddPhoto", "Home")'">

                    <span rel="tooltip" title="Add photo"><i class="fa fa-camera"></i></span>
                </a>
                <br />
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <input type="reset" value="Cancel" name="Command" style="text-align:right" />&nbsp; &nbsp;<input type="submit" name="Command" value="Post" style="text-align:right" />
                <br />
                <br />

在我的 HomeController.cs 文件中,我确实有这个方法:

public ActionResult AddPhoto()
{
   return View();
}

而实际的视图文件,确实存在于 Views/Home 下

Screen grab of views/home directory

因此,我不明白我遇到 404 not found 错误的原因。有人能帮帮我吗?

【问题讨论】:

  • 当您使用浏览器 URL 转到 /Home/AddPhoto 时,页面是否提供?
  • 尝试直接在浏览器位置输入网址并检查 - localhost:portno/home/AddPhoto 是否可以访问?
  • @Ashish Kaluskar,试试这个:转到操作,单击查看而不是选择“转到查看”,然后在您的操作顶部添加:[HttpPost]
  • Bon 和 Karthik .,不,不是。我什至尝试创建一个新视图(没有模型的空视图)并尝试通过浏览器访问它。我仍然得到相同的 404 not found 错误。奇怪的是我能够查看 Index.cshtml 和 About.cshtml 视图,它们都位于 Views/Home 目录中。但是我在该目录中创建的任何视图都会出现 404 not found 错误
  • @Ashish Kaluskar,尝试在 Action 之上添加 [HttpPost]

标签: asp.net asp.net-mvc


【解决方案1】:

在您的情况下,AddPhoto 操作必须是 [HttpPost]。它应该是 [HttpGet]。删除 [HttpPost]。只有 GET 从浏览器位置栏有效。

【讨论】:

    【解决方案2】:

    我们开始: 试试这个:

    <a href="#" id="addphoto" onclick="window.location.href='../Home/AddPhoto'">
    

    <a href="~/Home/AddPhoto" id="addphoto">`
    

    希望对你有帮助;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-12
      • 2018-09-11
      • 2021-12-18
      • 2013-03-10
      • 2015-06-07
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多