我的应用程序有一个自定义路由,如下所示:
routes.MapRoute(
name: "ProjectDocument",
url: "Project/{projectid}/{controller}/{action}/{id}",
defaults: new { controller = "Document", action = "Index", projectid = 0, id = UrlParameter.Optional }
);
基本上,有多个项目,每个项目都可以有文档。文档可能具有相同的ID,因此我需要projectid和documentid的组合来获取正确的文档。
我创建了一个编辑视图(“/ Project / 101 / Document / Edit / 78”)。当用户发布表单时,我首先检查我的“Document”控制器中的ModelState。如果失败,我想将模型/模型状态返回到视图以显示错误。通过正常路由,我只需使用
if (!ModelState.IsValid)
{
return View(model);
}
但这不适用于自定义路由,因为它返回“Document / Edit / 78”(没有自定义路由)。
有人能指出我正确的方向,我将如何返回该错误的完整自定义路线?
谢谢
每次请求更新
在我的文档控制器中
GET
public async Task<ActionResult> Edit(int projectid, int id)
{
...
POST
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit(ProjectDocument projectdocument)
{
...
答案 0 :(得分:0)
我明白了。我在RouteConfig.cs文件中的新路由下面默认路由。感谢Stephen让我进一步了解代码的其他部分。