我正在按照本教程创建第一个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");
}
}
}
答案 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->主文件夹中。