C# ASP.NET MVC路由aspx文件
因此,我正在编写一个ASP.NETMVC应用程序,我在路由aspx文件时遇到了一点问题—一般来说,这是可行的C# ASP.NET MVC路由aspx文件,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,因此,我正在编写一个ASP.NETMVC应用程序,我在路由aspx文件时遇到了一点问题—一般来说,这是可行的 假设我有一个razor页面,我想,例如,从数据库中打开特定行并显示它,它非常简单,我只需在index.cshtml中编写: @Url.Action("Details", new { id = item.DB_Id }) 详细信息页面打开,我可以在数据库中看到此行的具体信息 路由代码: routes.MapRoute( name: "Default",
假设我有一个razor页面,我想,例如,从数据库中打开特定行并显示它,它非常简单,我只需在index.cshtml中编写:
@Url.Action("Details", new { id = item.DB_Id })
详细信息页面打开,我可以在数据库中看到此行的具体信息路由代码:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
但是当我想做同样的事情,但不是打开details.cshtml文件时,我想用details.aspx(Web表单)来做这件事似乎是个问题。控制器是否必须不同,路由代码是否必须不同?或者基本上是可能的?以及想法或提示?
Url.Action
helper不会创建Web表单页面的Url,因为它们不是操作。你需要做一些类似的事情
@Url.Content("~/somefolder/Details.aspx?id=" + item.DB_Id)
Url.Content
用于创建静态文件的Url,但也适用于Web表单
您可以创建自己的帮助器,以便更干净地处理参数。我现在没有时间实施,但您可以创建如下内容:
@Url.WebFormsPage("~/somefolder/Details.aspx", new { id = item.DB_Id })
助手可以使用反射生成适当的查询字符串并将其附加到URL。查看是否有帮助you@ElmerDantas我甚至无法用.cshtml中的parametr打开.aspx文件。有可能吗?它是否只可行.aspx->.aspx?以及.aspx文件如何获得该参数并转到特定数据库?另一个可能对您有所帮助。我从来没有必要这样想……所以我不知道这是否可能。我很好奇,开始阅读,看看是否有可能实现it@ElmerDantas如果我可以问一下,你个人的喜好是什么。CSHTMLMVC或WebForms.aspx?肯定是.cshtml。我以前使用.aspx,但当我有机会时,我改变了do.cshtml MVC。在我看来,webForms.aspx与MCV.cshtml的关系太混乱了。谢谢你,伙计!我花了两天时间试图通过改变路线、控制器等来让它工作。现在我得到了我想要的@如果您注册了Web表单页面路由,则可以使用内置帮助器。我不确定,我从来没有试过。见和。如果我是你,我宁愿放弃所有的MVC和Web表单,但是如果你已经有了可以做你想做的事情的Web表单页面,这可能会很有用。