因此,我正在编写一个ASP.NET MVC应用程序,我在路由aspx文件时遇到了一些问题-总的来说,这项工作可以实现。
假设我有一个剃刀页面,并且想要,例如从数据库中打开特定行并显示它,这非常简单,我只写了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
辅助程序不会为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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句