在MVC3 ASP.NET c#中无法正常路由

时间:2014-07-10 11:09:37

标签: c# asp.net-mvc asp.net-mvc-3 entity-framework-4

我正在构建我的第一个MVC应用程序,我正在使用:

1)Visual Studio 2010终极版。 2)Mysql数据库 3)EntityFramework 4

这是我的代码

型号:

namespace MvcApplication2.Models{
    using System;
    using System.Collections.Generic;

    public partial class region
    {
       public region()
      {
            this.provincia = new HashSet<provincia>();
        }

        public int REGION_ID { get; set; }
        public string REGION_NOMBRE { get; set; }

        public virtual ICollection<provincia> provincia { get; set; }
    }}

控制器:

    //
    // GET: /Region/Edit/5

    public ActionResult Edit(int id)
    {
        region region = db.region.Find(id);
        return View(region);
    }

    //
    // POST: /Region/Edit/5

    [HttpPost]
    public ActionResult Edit(region region)
    {
        if (ModelState.IsValid)
        {
            db.Entry(region).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(region);
    }

的Global.asax.cs:

    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 = "" } // Parameter defaults
        );

    }

当我试图编辑某些区域时,这是错误。

  

参数字典包含参数&#39; id&#39;的空条目。非可空类型&gt;&#39; System.Int32&#39; for method&#39; System.Web.Mvc.ActionResult Edit(Int32)&#39;在&gt;&#39; MvcApplication2.Controllers.RegionController&#39;。可选参数必须是引用类型,>可空类型,或者声明为可选参数。   参数名称:参数

当我调用编辑时,请将我发送到/ Region / Edit,它应该是/ Region / Edit / some_id

提前致谢

1 个答案:

答案 0 :(得分:2)

尝试分析构建链接的cshtml页面。

它应该包含区域的ID,如:

@Html.ActionLink("Edit", "Edit", new { id = item.REGION_ID })