URL重定向问题。在asp.net mvc中

时间:2016-09-24 18:05:55

标签: asp.net-mvc

当我创建新记录时,我尝试使用此方法重定向到编辑页面。

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

然而,结果就是这样。

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

什么时候应该

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

为什么会这样?

3 个答案:

答案 0 :(得分:1)

您必须更改路线图,当前可能会显示

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

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

有关详细信息:http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/asp-net-mvc-routing-overview-cs

答案 1 :(得分:1)

默认路由注册的默认路由模式为"{controller}/{action}/{id}",因此,如果您需要具有该结构的网址,则可以将操作方法​​参数名称重命名为Id

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

另一种选择是使用Attribute routing并使用现有参数(OrgId)为action方法指定此路由模式

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

答案 2 :(得分:-1)

如果您尚未更改路线表值,

然后你应该将你的action参数改为id而不是OrgId,

或者您应该从

更改路线表值

{controller}/{action}/{id}

{controller}/{action}/{OrgId}