Мне нужно создать URL для использования в JavaScript.Я не думаю, что мое текущее решение является очень читабельным.
//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-переменные в js-переменные.
Можно лиизбавиться от первого javascript?
Можно ли улучшить читаемость последней строки?Имхо, это довольно отвратительно, особенно в моей странице javascript.
Другие улучшения?
Улучшение 1:
var gridUrl = '<%= Url.Content("~/Company/GetEmployees/") }) %>' + m_departmentId;
T4MVC не работает, когдадействие было действием по умолчанию для маршрута, потому что действие было удалено из пути, когда аргумент действия не использовался.