【发布时间】:2011-11-22 08:13:43
【问题描述】:
我需要生成用于 javascript 的 url。我不认为我当前的解决方案可读性很强。
//Navigation during load: Id from MVC or hash or zero.
var m_departmentId = <%= ViewContext.RouteData.Values["id"] ?? 0 %>;
if(0 == m_departmentId)
{
var hash = location.hash;
//Only one hash value
var id = parseInt(hash.substring(2));
//If it's a real Id, use it.
if (!isNaN(id)) {
m_departmentId = id;
}
}
var gridUrl = '<%= Url.Action("GetEmployees", "Company", new { area = "" }) %>/' + m_departmentId;
这个脚本放置在我的页面顶部 javascript 我将 aspnet-variables 转换为 js-variables。
我可以摆脱第一个 javascript 吗?
我可以提高最后一行的可读性吗?恕我直言,这相当可怕,尤其是在我的页面 javascript 中。
其他改进?
改进 1:
var gridUrl = '<%= Url.Content("~/Company/GetEmployees/") }) %>' + m_departmentId;
当动作是路由的默认动作时,T4MVC 不起作用,因为当没有使用动作参数时,动作被从路径中剥离。
【问题讨论】:
-
@Darin Dimitrov 它用于该页面上的 ajax 导航(带有深度链接)(类似于树和网格的浏览器界面)。
标签: javascript asp.net asp.net-mvc url