mvc自定义路由null模型在帖子上

时间:2012-10-10 17:31:21

标签: routes asp.net-mvc-4

MVC4动作帖子中的奇怪行为。我创建了一个自定义路线:

routes.MapRoute(
            name: "Projects",
            url: "{company}/{project}/{id}/{action}",
            defaults: new { controller = "Projects", action = "Index" },
            constraints: new { id = @"\d+" }

当我的编辑页面使用

<form action="/COMPANY/Projects/Edit/1" method="post">

(其中Projects是控制器的名称)更新工作正常,但是当我使用

@using (Html.BeginForm())

转换为

<form action="/COMPANY/PROJECT/1/Edit" method="post">

COMPANY和PROJECT都是动态值,看起来像这样

<form action="/sith-co/death-star/1/Edit" method="post">

模型为空。 Request.Form数据无论哪种方式都相同,它确实会执行正确的操作。唯一的区别是操作字符串,模型为空

控制器

 [HttpPost]
 public ActionResult Edit(project project)
 {

修改

感谢JOBG的回答,当我遇到与另一个控制器类似的问题时,我能够发现。由于某种原因,路由中的{project}参数被绑定而不是模型。通过将参数名称更改为{projectName},一切都在MVC的土地上再次出现。

1 个答案:

答案 0 :(得分:3)

尝试将变量的名称更改为其他内容:

[HttpPost]
 public ActionResult Edit(project model)
 {
}