Страница не существует в MVC - PullRequest
2 голосов
/ 04 октября 2011

Я следую этому руководству, чтобы создать первое приложение mvc ( Создать приложение базы данных фильмов) .

Я уже добавил представление создания, но когда я нажимаю на ссылку Создать новую, страница не существует. Типичный 404 error.

Я пытался

/home/create
/create
/create.aspx
/home/create.aspx

Я очень новичок в MVC, поэтому, пожалуйста, не смейтесь. :)

РЕДАКТИРОВАТЬ: GLobal .asax

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

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }

HomeController

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Movies.Models;

namespace Movies.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        private LearningEntities _db = new LearningEntities();

        public ActionResult Index()
        {

            return View(_db.Movies1.ToList());

        }

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Create([Bind(Exclude = "Id")] Movie movieToCreate)
        {

            if (!ModelState.IsValid)
                return View();
            _db.AddToMovies1(movieToCreate);
            _db.SaveChanges();
            return RedirectToAction("Index");

        } 

    }
}

Ответы [ 3 ]

2 голосов
/ 04 октября 2011

У вас нет действия create "get".

По сути, у вас есть действие create для отправки формы.

Вам нужен этот код из учебника:

// GET: /Home/Create 
public ActionResult Create()
{
    return View();
}  
2 голосов
/ 04 октября 2011

Вам нужен метод Get, а также метод Post Create в вашем контроллере.Вам нужно следующее

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

public ActionResult Create([Bind(Exclude = "Id")] Movie movieToCreate) 
{ 
 ....
}

Изменить: URL для вашего представления создания: /Home/Create

1 голос
/ 04 октября 2011

Создание, которое вы имеете, предназначено для HttpPost, который вы будете использовать, когда пытаетесь создать сущность. Изначально вам понадобится метод контроллера с методом создания HttpGet, который позволит вам вводить данные для новой сущности. Также убедитесь, что ваш вид находится в Views-> home folder.

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