powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC не всегда работает вызов $.post() на странице.
18 сообщений из 18, страница 1 из 1
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691001
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть проблема: один и тот же код:

JQuery
$("#btn1").click(function () {
$.post('Log');
});

работает в представлении Index, но не работает в представлении Detail. То есть в Detail при нажатии btn1 вызов $.post не срабатывает. А в Index срабатывает. Оба представления и метод Log находятся в одном и том же контроллере:

public void Log()
{
Util.Log("Log");
}

представления отличаются действиями:

public virtual ActionResult Index()
...
public virtual ActionResult Detail(int id)

Не пойму, что я не так делаю?
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691006
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) у Detail есть атрибут [HttpPost]?

2) параметр id в Detail передается? если сделать Detail(int? id) и посмотреть, чему равен id
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691043
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. У Detail нет [HttpPost] .
2. Параметр id в Detail передаётся (равен 1 хоть ставь int?).

Если поставить [HttpPost] для Log() то всё равно не работает. При тех же обстоятельствах не работает $.get().
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691084
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем, проверил на новом приложении где вообще ничего нет.

Если действие Detail не имеет входных параметров, то код

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#btn1").click(function() {
$.get('Log', function(result) {
alert(result);
});
});
});
</script>

отрабатывает без проблем. Если есть входные параметры Detail(int id), то вышеприведённый код не работает.
Бред какой-то.
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691206
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я перестал понимать, что у вас там не работает конкретно. Выложите тот самый чистый проект, чтобы долго не объяснять.
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691240
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проект не получится приложить, рар минимум 2мб. Приложил файлы контроллера и вью.

В общем, всё просто. В контроллере Home есть действие Index(int id) . В представлении Index есть скрипт jquery, привязанный к кнопке. Скрипт вызывает Log() который пишет в файл. Если запустить
http://localhost:6879/Home/Index/ 1 и нажать на кнопку то ничего не происходит.

Если изменить действие Index и убрать входной параметр Index() то при вызове
http://localhost:6879/Home/Index
и нажатии на кнопку код выполняется, в Log.txt пишет строку и появляется alert с результатом.
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691278
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не знаю.
Если исправить представление на
Код: javascript
1.
2.
3.
$.get('/Home/Log', function(result) {
alert(result);
 });

у меня все работает в обоих вариантах
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691280
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Спасибо, действительно заработало. Я как-то не допетрил добавить Home.
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691283
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык эта.
у вас никак не могло работать ни в каком варианте, этим вы ввели в заблуждение.
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691288
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работало, без параметров работало.
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38691290
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит у вас что-то в маршрутах прописано и т.п., почему я и просил весь проект

а вообще, во-первых для формирования url-ов нужно пользоваться UrlHelper (в представлении это @Html.ActionLink), во-вторых, метод контроллера все-таки должен возвращать ActionResult
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38692512
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не понял. А где я там не использовал Html.ActionLink где должен был?
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38692525
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, @Url.Action конечно же
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38692532
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё равно непонятно. Где там дёргать Html.Action?

И почему метод контроллера обязательно должен возвращать ActionResult? А если мне в скрипте просто нужно дёрнуть метод проверки данных в бд и по результатам true/false принимать решение?
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38692533
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то есть я про @Url.Action
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38692553
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigorMortisто есть я про @Url.Actionдык в том месте, где была ошибка в виде неправильного урла. @Url.Action как раз и предназначен для того, чтобы формировать правильный url. Нет, ну это, конечно, необязательно, если это вас так расстраивает. Просто, например, если вы вдруг заходите воспользоваться областями (Area), то не потребуется переписывать код представлений.

rigorMortisИ почему метод контроллера обязательно должен возвращать ActionResult?Да в общем-то тоже необязательно, тут я был излишне категоричен.
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38692571
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну а в моём случае, когда url используется в вызове .post. Вы предлагаете сделать что-то вроде

<a href="@Url.Action("Log","Home")" id="ref"></a>

и потом в вызове

<a href="@Url.Action("Log","Home")" id="ref1"></a>


$.get($("#ref1").attr("href"), function (result) {
alert(result);
});


так что ли?
...
Рейтинг: 0 / 0
ASP.NET MVC не всегда работает вызов $.post() на странице.
    #38692582
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не-не. Action возвращает урл (а не тэг <a>), то есть можно было бы использовать его внутри get в качестве урл-а
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC не всегда работает вызов $.post() на странице.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]