如何在ASP.NET MVC中传递属性路由的参数

时间:2014-08-21 02:16:27

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-5 attributerouting redirecttoaction

这是我的模特: 公司 - >项目

我创建了我的公司,其id = 1.现在,我想为它添加一个项目。使用MVC属性路由,我可以很好地使用此网址:http://example.com/companies/1/projects/create

当我填写项目的字段并使用HTTPPOST提交时,我想将用户发送到http://example.com/companies/1/projects/edit/9< - 9,这是刚从create方法创建的项目。

如果我这样做:

return RedirectToAction("{companyid}/projects/edit", "companies", new {companyid = id, id= project.ID });

它会在这里爆炸:http://example.com/companies/%7Bcompanyid%7D/projects/edit/9?companyid=1

我希望它转到http://example.com/companies/1/projects/edit/9

有人可以帮我解决RedirectToAction()吗?

1 个答案:

答案 0 :(得分:0)

RedirectToAction的第一个参数是一个动作名称(因此将在您的CompaniesController上调用的方法的名称),而不是路径。

您可以替换字符串" {companyid} / projects / edit"对于操作名称或使用RedirectToRoute方法并传入路由表中设置的路由名称。