URL重定向issue.in asp.net mvc

问题描述:

当我创建一个新的记录时,我试图用这个重定向到编辑页面。URL重定向issue.in asp.net mvc

return RedirectToAction("Edit", "Organization", new { OrgId = organization.OrgId }); 

但是,结果是这样的。

http://localhost:1626/Organization/Edit?OrgId=5 

当它应该是

http://localhost:1626/Organization/Edit/5 

这是为什么?

你必须改变你的路线图,这可能看起来像这样目前

"{controller}/{action}/{id}" 

"{controller}/{action}/{OrgId}"

如需进一步信息:http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/asp-net-mvc-routing-overview-cs

缺省路由注册默认路由模式"{controller}/{action}/{id}",所以,如果你想要一个具有该结构的URL,你可以将你的动作方法参数名称重命名为Id

public ActionResult Edit(int id) 
{ 
    // to do : Return something 
} 

另一种选择是使用Attribute routing,并与您现有的参数指定的操作方法,此路由模式(ORGID)

[Route("Organization/Edit/{OrgId}")] 
public ActionResult Edit(int OrgId) 
{ 
    // to do : Return something 
} 
+0

真棒,我当时是这个周六缓慢morning.I'll给你选中标记,它让我。 – tom

如果你没有改变你的路由表中的值,

然后你应该改变你的行动参数为ID而不是OrgId,

或者你应该改变你的路线表值从

{controller}/{action}/{id}

{controller}/{action}/{OrgId}

+0

已有相同代码行的答案。 – mmushtaq