Javascript中的Url帮助程序ASP.NET MVC
我正在编写一个js脚本,它读取一个包含我的web应用程序的所有导航链接的JSON文件。 菜单树如下所示:Javascript中的Url帮助程序ASP.NET MVC,javascript,asp.net-mvc,json,Javascript,Asp.net Mvc,Json,我正在编写一个js脚本,它读取一个包含我的web应用程序的所有导航链接的JSON文件。 菜单树如下所示: 1 - DASHBOARD - dashboard 2 - SETTINGS 2.1 - GENERAL - settings/general 2.2 - LAYOUT - settings/layout 3 - DATABASE 3.1 - QUERY 3.1.2 - EDITOR - database/query/editor 3.1.
1 - DASHBOARD - dashboard
2 - SETTINGS
2.1 - GENERAL - settings/general
2.2 - LAYOUT - settings/layout
3 - DATABASE
3.1 - QUERY
3.1.2 - EDITOR - database/query/editor
3.1.3 - TEST - database/query/test
男子ù是3级嵌套链接
我如何在JSON文件中写入链接,以避免在“仪表板”中出现“未找到”
,并希望转到设置>常规
我不想使用绝对路径,我的webapp将在虚拟目录中运行。您应该使用Url.Content(“~/”
)来获取应用程序的绝对Url。例如,如果您在名为MyApp
的虚拟目录中运行应用程序,并且在About/Me
中有一个页面,则可以使用:
string url = Url.Content("~/About/Me"); // this will return '/MyApp/About/Me'
如果可以,我建议修改JSON响应,以包含应用程序承载的基本路径
string basePath = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"));
例如:basePath+“database/query/editor”
而不是database/query/editor
如果无法修改JSON响应,则可以从MVC的JavaScript变量中获取应用程序承载的基本路径
在\u Layout.cshtml
文件或每次加载应用程序时加载的任何文件中,在JS变量中设置应用程序运行的基本路径:
<script type="text/javascript">
window.applicationBaseUrl = @Html.Raw(HttpUtility.JavaScriptStringEncode(Url.Content("~/"), true));
</script>
window.applicationBaseUrl=@Html.Raw(HttpUtility.JavaScriptStringEncode(Url.Content(“~/”),true));
现在,当您收到包含URL的JSON时,将它们与基本路径连接起来:
var queryEditorUrl = window.applicationBaseUrl + <the path from your JSON>
var queryEditorUrl=window.applicationBaseUrl+
这样,您的URL就独立于它所在的虚拟目录。根本不清楚您在这里要做什么。
string basePath = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"));