Получение 404 при запросе URL в ASP.NET MVC - PullRequest
0 голосов
/ 16 декабря 2018

Я следую этому учебнику на microsoft.com.Все работало нормально, пока я не достиг этой страницы.Я скопировал точный код как для модели, так и для строки подключения, но получаю ошибку Ресурс не найден.enter image description here

Поскольку версия VS, используемая в учебном пособии, отличается от моей (у меня VS VS 2013).Я пробовал все решения, которые мог Google, но безрезультатно.Я пытаюсь решить эту проблему более 6 часов.

Редактирование поста в соответствии с просьбой в комментариях:

Код для контроллера:

namespace MvcMovie.Controllers
{
    public class MoviesController : Controller
    {
        private MovieDBContext db = new MovieDBContext();

        // GET: /Movies/
        public ActionResult Index()
        {
            return View(db.Movies.ToList());
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
    }
}

Виды / Фильмы/Index.cshtml:

@model IEnumerable<MvcMovie.Models.Movie>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Title)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.ReleaseDate)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Genre)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Price)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ReleaseDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Genre)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Price)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
        </td>
    </tr>
}

</table>

RouteConfig.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

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

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

Я пытаюсь открыть: http://localhost:51033/Views/Movies/Index.cshtml Также, когда я проверял папку AppData, она пуста,Поэтому код первой БД не создан.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Пытаясь найти так много решений, включая приведенный выше ответ, я пришел к окончательному решению моей проблемы.У меня были две проблемы:

  1. Неверный URL для MVC (хотя я несколько раз пробовал http://localhost:51033/Movies, но все же URL-адрес, созданный решением, которое я использовал, был неверным).
  2. Моей настоящей проблемой была строка подключения (которую я ожидал).По-видимому, мой LocalDB не работает по некоторым причинам.Поэтому я использовал SQL Server, установленный в моей системе, и он работал как чудо.

Так что, если кто-то еще сталкивается с этой проблемой, он может попробовать строку подключения, как показано ниже:

<add name="MovieDBContext"
    providerName="System.Data.SqlClient"
    connectionString="Data Source=.;Initial Catalog=MvcMovie;Integrated Security=True" />
0 голосов
/ 16 декабря 2018

Вы запрашиваете неправильный Url при неправильном подходе.http://localhost:51033/Views/Movies/Index.cshtml не может быть Url в ASP.NET MVC.Пожалуйста, попробуйте следующее Url:

 http://localhost:51033/Movies/Index

Ваша проблема должна быть исправлена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...