2017-01-19 18 views
0

我的应用程序看起来像这样的自定义路线:ASP.NET MVC - 返回查看与自定义路由

routes.MapRoute(
    name: "ProjectDocument", 
    url: "Project/{projectid}/{controller}/{action}/{id}", 
    defaults: new { controller = "Document", action = "Index", projectid = 0, id = UrlParameter.Optional } 
); 

基本上有多个项目,并且每个项目可以有文件。这些文档可能具有相同的ID,所以我需要将投影和文档结合起来以获得正确的文档。

我创建了一个编辑视图(“/ Project/101/Document/Edit/78”)。当用户发布表单时,我首先在我的“文档”控制器中检查ModelState。如果失败了,我想返回model/modelstate到视图来显示错误。与普通的路由,我只想用

if (!ModelState.IsValid) 
{ 
return View(model); 
} 

,但因为它返回的“文件/编辑/ 78”(不包括自定义路由),这不符合自定义路线工作。

有人可以指出我正确的方向,我将如何返回该错误的完整自定义路线?

感谢

每秒更新请求

在我的文档控制器

GET

public async Task<ActionResult> Edit(int projectid, int id) 
{ 
... 

POST

[HttpPost] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> Edit(ProjectDocument projectdocument) 
{ 
... 
+0

“Edit()”方法的控制器GET和POST方法的签名是什么? –

+0

[HttpPost] [ValidateAntiForgeryToken] 公共异步任务<的ActionResult>编辑(ProjectDocument projectdocument) –

+0

请编辑的问题(没有评论),以及包括对GET以及 –

回答

0

我想通了。我的新路由低于我的RouteConfig.cs文件中的默认路由。感谢Stephen推动我进一步了解我的代码的其他部分。