Назначая location.hash
на year
, вы не изменяете p.innerHTML
. year
и p.innerHTML
не ссылаются на ценность друг друга. Когда вы инициализировали следующим образом:
p.innerHTML = window.year;
Значение year
было скопировано , так что теперь у вас есть два значения, которые на тот момент оказались одинаковыми, но они не связаны так что если вы назначите новое значение одному, оно также обновит другое. Нет, они не являются ссылками.
Таким образом, в обработчике событий вы также должны назначить новый хеш для p.innerHTML
, или, лучше, поскольку хеш-код является текстовым, назначить его для p.textContent
:
var p = document.querySelector('p');
var year;
function showHash() {
// Assign both to textContent and year (they are independent)
p.textContent = year = location.hash;
// Maybe call some other functions which need to know about `year`
manage();
}
function manage() {
console.log(year);
// ... etc
}
window.onhashchange = showHash;
location.hash = '#2019'; // This triggers showHash, no need to call it explicitly
<p></p>
<a href="#2018-01">1</a>
<a href="#2018-02">2</a>
Можно включать целый путь MVC (контроллер и действие) в < location> атрибут пути тега. Что-то вроде этого должно работать:
<location path="Images/Upload">
<system.web>
<httpRuntime executionTimeout="600" />
</system.web>
</location>
Работы решения Chris Hynes! Просто обязательно не включайте ~ / в Ваш путь.
Этот ответ детали иначе - просто установил ScriptTimeout
в рамках Вашего кода действия:
public ActionResult NoTimeout()
{
HttpContext.Server.ScriptTimeout = 60 * 10; // Ten minutes..
System.Threading.Thread.Sleep(1000 * 60 * 5); // Five minutes..
return Content("NoTimeout complete", "text/plain"); // This will return..
}
Если действие выполняется в контроллере по умолчанию, то home / upload не работает, вы просто указываете имя действия.