routes - 帖子上的 mvc 自定义路由空模型

标签 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 是 Controller 的名称)更新工作正常,但是当我使用时

@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 数据在任何一种方式下都是相同的,它确实命中了正确的操作。唯一的区别是操作字符串和模型为空

Controller

 [HttpPost]
 public ActionResult Edit(project project)
 {

编辑

多亏了 JOBG 的回答,当我在另一个 Controller 上遇到类似问题时,我才得以发现。由于某种原因,路由中的 {project} 参数被绑定(bind)而不是模型。通过将参数名称更改为 {projectName},一切都再次在 MVC 领域顺利进行。

最佳答案

尝试将变量的名称更改为其他名称,例如:

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

关于routes - 帖子上的 mvc 自定义路由空模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12825038/

相关文章:

java - JXMapKit OpenStreetmaps 创建路线

python - 传入 Flask 的可能路径列表?

javascript - 路由整个文件夹及其内容

angularjs - 使用 ng-view 的 Angular 路由不起作用

javascript - jQuery:如何遍历/迭代对象列表

c# - iTextSharp 输入字符串格式不正确 css 错误

python - 使用API​​View接收参数

asp.net-mvc - MVC4 DropDownListFor 对象引用未设置为对象的实例

c# - LINQ Join从多个表中删除内容

c# - asp mvc razor 存储 lambda 表达式以列出并重用它