【问题标题】:Trying to display Custom View in MVC app but it says requested URL not found尝试在 MVC 应用程序中显示自定义视图,但显示未找到请求的 URL
【发布时间】:2016-01-19 17:06:57
【问题描述】:

我是 azure、MVC 和 ASP.NET 的新手。我正在使用 ASP.NET Web 角色编写 MVC 云服务。请帮我解决这个问题

当我创建应用程序时,有默认视图,但我想查看我的视图,所以我将我的视图设置为起始页。我还更改了 RegisterRoutes 方法中的值

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "User", action = "AddUser", id = UrlParameter.Optional }
        );
 }

当我运行该应用程序时,它给出了 HTTP 404 错误,因为它找不到请求 URL:/Views/User/AddUser.cshtml

【问题讨论】:

  • 您似乎正在尝试直接从 URL 访问视图。在 MVC 中,您的请求应该针对控制器操作,而不是直接针对视图。因此,在这种情况下,请检查当您尝试访问 URL 时会发生什么 - ....\User\AddUser
  • 您通过导航到返回视图的控制器中的方法来访问视图。建议您访问 MVC 站点并通过教程学习基础知识。

标签: asp.net asp.net-mvc azure


【解决方案1】:

在 MVC 中,您不会将视图放在 URL 中进行渲染。

这不起作用:/Views/User/AddUser.cshtml

正如您正确提出问题,默认路由是 {controller}/{action}/{id},id 是可选的。

所以假设 User 是您的控制器,即您有一个名为 UserController 的类,它看起来像:

namespace My.Controllers
{
    public class UserController : Controller
    {

其中有一个名为 AddUser 的操作:

        public ActionResult AddUser()
        { 
          // implementation logic
          return View();
        }

那么默认路由在处理URL时会显示你的视图/User/AddUser

在 MVC 5 中,这看起来像:

【讨论】:

  • 我正是你所说的。我不知道出了什么问题。我重新创建了项目并做了完全相同的事情,它显示了我创建的视图。非常感谢
  • @Fairy 很高兴你把它整理好了。不要忘记将此标记为accepted answer :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 2021-07-03
  • 1970-01-01
相关资源
最近更新 更多