MVC中不存在页面

时间:2011-10-04 14:16:07

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我正在按照本教程创建第一个mvc应用程序(Create a Movie Database Application)

我已经添加了创建视图,但是当我点击“创建新链接”时,该页面不存在。典型的404 error

我试过

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

我在MVC非常新手,所以请不要笑。 :)

编辑:全球.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 个答案:

答案 0 :(得分:2)

您需要在控制器中使用Get和Post Create方法。您需要以下

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

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

修改:您的创建视图的网址为/Home/Create

答案 1 :(得分:2)

您没有创建“获取”操作。

基本上,您提供的创建操作适用于提交表单的时间。

您需要教程中的以下代码:

// GET: /Home/Create 
public ActionResult Create()
{
    return View();
}  

答案 2 :(得分:1)

您创建的是HttpPost,您在尝试创建实体时将使用它。最初,您需要使用HttpGet创建方法的控制器方法,该方法允许您输入新实体的数据。另外,请确保您的视图位于Views->主文件夹中。