Я уверен, что это что-то такое в jQuery / MVC3, что я просто еще не понял, так что если кто-то может сказать мне, почему это так.
Когда я вызываю процедуру действия несколько раз, процедура @ Url.Action возвращает разные строки.
Следующее работает независимо от того, сколько раз оно вызывается.
function DeletePhone( delId )
{
var va = $("#idPhoneNumberView *").serializeArray();
$.ajax({
url: '@Url.Action( "DeletePhone", "Player")/' + delId,
data: JSON.stringify(va),
type: 'POST',
contentType: 'application/json',
dataType: 'html',
success: function (resp)
{
var ev = document.getElementById("idPhoneNumberView");
ev.innerHTML = resp;
},
error: function (x)
{
alert(x.status);
}
});
};
Эта процедура работает только в первый раз.
function DeletePhone( delId )
{
var va = $("#idPhoneNumberView *").serializeArray();
$.ajax({
url: '@Url.Action( "DeletePhone", "Player")/' + delId,
data: JSON.stringify(va),
type: 'POST',
contentType: 'application/json',
dataType: 'html',
success: function (resp)
{
$("#idPhoneNumberView").html(resp);
},
error: function (x)
{
alert(x.status);
}
});
};
URL-адрес "/ Mvc / Player / DeletePhone / 0" при первом вызове
и это "/ Mvc / Player / DeletePhone / 0/0" на последующих вызовах, так как я получаю 404 после первого вызова, который отображается из функции ошибки, которая понятна, учитывая URL.
Обработка отличается, когда я использую jQuery $ ("# idPhoneNumberView"). Html (соответственно), поэтому, если кто-то сможет меня ускорить, это будет оценено.
Я хочу быть уверен, что я в этом уверен.
ЕДИНСТВЕННОЕ различие в коде работает и то, что нет, это использование jQuery, а не использование getElementById непосредственно в функции успеха.
Я не понимаю, как использование метода jQuery html заставляет метод @ Url.action создавать различные пути при последующих вызовах.
Скотт