Должна быть простая проблема, но я точно не знаю, почему это так.
На моем веб-сайте ASP.NET MVC 5 у меня есть простой вид с сеткой и действие соты, которое вызывает функцию js, отправляющую некоторые параметры этой функции.
function OnCellClick(param1, param2) {
var urlAJAX = @Url.Action("GetJson", "PosicaoEstoque", new { p1 = param1 , p2 =param2}); }
Таким образом, я получаю сообщение "Can not Resolve" для param1 и param2. Как я могу это решить?
Вы можете использовать placeholder. Сгенерируйте url, используя параметры держателя места, а затем замените их параметром
function OnCellClick(param1, param2) {
var urlAJAX = '@Url.Action("GetJson", "PosicaoEstoque", new { p1 = -1 , p2 = -2})';
urlAJAX = urlAJAX.replace('-1', param1).replace('-2', param2);
}
Без использования Url.Action
как Url.Action
ниже:
var urlAJAX = 'PosicaoEstoque/GetJson?p1=' + param1 + '&p2=' + param2;
Ваша проблема в том, что вы смешиваете серверный и клиентский код. Вы не можете просто поместить переменные JavaScript в Url.Action()
, поскольку он выполняется на стороне сервера. Что вы можете сделать, это поместить некоторые фиктивные значения в качестве параметров и вызвать функцию replace()
JavaScript в сгенерированном URL-адресе.
Проверьте это для справки.
p2
в своем методеGetJson
?