【发布时间】:2015-02-04 18:17:19
【问题描述】:
我有一个项目,其中包含三个不同的税收、销售、天然气、公用事业控制器。当我从http://localhost/tax/salestax 之类的菜单中调用一个时,它很好地转到了 Index 方法。路由配置是这样的:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这在调用该方法以创建新条目时工作正常,但在调用已从具有事务编号的列表中输入的条目时失败。
public ActionResult Index(long? id)
{
if (id = null)
{
return newTaxRequest();
}
return existingTaxRequest(id.ToString());
}
使用参数调用时页面甚至不会在索引上中断:
http://localhost/tax/salestax/500030
Home 控制器的 Index 操作方法很简单:
public ActionResult Index()
{
return View();
}
如何配置控制器操作或路由映射来解决此问题?
好的,这里的前辈把路线改成了:
salestax/{id}
通过“索引”的操作,我可以看到创建的反式。他为其他两种类型增加了两条路线。但是,现在我不能创建一个新的,因为它总是回到索引,在一个无限的循环中。如果我将其更改为:
salestax/{action}/{id}
我可以创建一个新的trans,但无法看到创建的一个,错误是http://localhost/tax/salestax/500030 找不到。
还有其他想法吗?
【问题讨论】:
-
同意@dotnetom,您发布的不是有效代码,因此很难猜测可能有什么问题。使用您正在执行的实际代码更新您的帖子。如果控制器不是太大,那么查看控制器上的其他方法也会有所帮助。
-
如果这是配置的唯一路由,那么
http://localhost/tax/salestax将无法转到Index控制器的Index操作。它将调用tax控制器的salestax操作。因此,尝试转到http://localhost/tax/500030- 这应该使用参数调用Index操作。家庭控制器,它的Index操作与您的问题无关。
标签: asp.net-mvc-4