Вы не можете выполнять обратную передачу или вызывать что-либо в представлении из JavaScript в приложении ASP.NET MVC. Все, что вы хотите вызвать из JavaScript, должно быть действием на контроллере. Трудно сказать больше, не имея более подробной информации о том, что вы пытаетесь сделать, но если вы хотите вызвать какой-либо метод «Переместить» в своем веб-приложении из JavaScript, тогда «Переместить» должно быть действием на контроллере.
Основываясь на комментариях, я собираюсь дополнить этот ответ более подробным описанием того, как вы можете реализовать то, что я понимаю как проблему, описанную в вопросе. Однако в этом вопросе не хватает информации, поэтому я размышляю здесь. Надеемся, что общая идея будет реализована, даже если некоторые детали не соответствуют точному коду TStamper.
Давайте начнем с действия контроллера:
public ActionResult ShowMyPage();
{
return View();
}
Теперь я знаю, что хочу повторно отобразить эту страницу и сделать это с помощью аргумента, переданного функцией JavaScript на странице. Поскольку я снова буду отображать ту же страницу, я просто изменю действие, чтобы принять аргумент. Строковые аргументы обнуляются, поэтому я могу продолжать делать начальное отображение страницы, как всегда, не беспокоясь о том, чтобы указать какое-либо значение по умолчанию для аргумента. Вот новая версия:
public ActionResult ShowMyPage(string searchQuery);
{
ViewData["SearchQuery"] = searchQuery;
return View();
}
Теперь мне нужно снова вызвать эту страницу в JavaScript. Поэтому я использую тот же URL-адрес, который использовался для первоначального отображения страницы, но я добавляю параметр строки запроса с именем таблицы:
http://example.com/MyControllerName/ShowMyPage?searchQuery=tableName
Наконец, в моем aspx я могу вызвать функцию с кодом, передавая searchQuery из данных представления. Еще раз, у меня есть серьезные оговорки относительно использования кода в приложении MVC, но это будет работать.
Как вызвать функцию code-behind в aspx:
<% Search(ViewData["searchQuery"]); %>
Я изменил аргументы. Так как вы не обрабатываете событие (за некоторыми исключениями, такими как Page_Load, в MVC их нет), функции поиска не требуется подпись обработчика события. Но я добавил аргумент "tablename", чтобы вы могли передать его из aspx.
Еще раз, я выскажу свои оговорки по поводу этого в коде позади. Меня поражает, что вы пытаетесь использовать стандартные методы ASP.NET внутри инфраструктуры MVC, когда MVC работает иначе. Я бы настоятельно рекомендовал пройтись по учебным пособиям по MVC, чтобы увидеть примеры более стандартных способов выполнения подобных действий.