在MVC3 ASP中不能很好地路由.净c#

本文关键字:路由 很好 不能 MVC3 ASP | 更新日期: 2023-09-27 18:12:22

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

1) Visual Studio 2010 ultimate。2) Mysql数据库3)实体框架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
        );
    }

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

参数字典包含一个非空类型>'System的参数'id'的空条目。Int32' for方法'System.Web.Mvc.ActionResult Edit(Int32)' in>' mvapplication2 . controllers . regioncontroller '。可选参数必须是引用类型、>可空类型,或者声明为可选参数。参数名称:parameters

当我调用编辑发送我到/Region/edit,它应该是/Region/edit/some_id

Thanks in advance

在MVC3 ASP中不能很好地路由.净c#

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

应该包括区域的id,如:

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