Я пытаюсь имитировать Mvc ActionLink. Я хочу, чтобы весь ряд был кликабельным. при нажатии на ссылку action вызывается подключенный контроллер и выполняется код внутри. Я хочу, чтобы мой вызов Jquery / ajax делал то же самое.
Я пробовал несколько способов сделать это без удачи. Сейчас я нахожусь в точке, где строка кликабельна, и Jquery это видит, однако вызов ajax не выполняется. Или, если это так, контроллер не выполняется правильно
Вот код Jquery, который ловит щелчок.
$(document).ready(function () {
$('#policyTable').on('click', '.clickable-row', function (event) {
$(this).addClass('primary').siblings().removeClass('primary');
var Id = $(this).closest('tr').children('td:first').text();
var url = "/Home/ReviewPolicy";
var uc = $(this).closest('tr').children('td:first').text();
alert("Does the click work? " + Id);
$.ajax({
type: "POST",
url: "/Home/ReviewPolicy",
dataType: 'text',
data: { Id: Id }
});
})
})
Вот контроллер, который он вызывает:
[HttpPost]
public ActionResult ReviewPolicy(string Id)
{
//Declare policyVM for individual policy
PolicyRenewalListVM model;
int val = Convert.ToInt32(Id);
using (Db db = new Db())
{
//Get the row
PolicyRenewalListDTO dto = db.RenewalPolicies.Find(val);
//confirm policy exists
if (dto == null)
{
return Content("This policy cannot be found.");
}
//initialize the PolicyRenewalListVM
model = new PolicyRenewalListVM(dto);
}
//return view with model
return View(model);
}
При щелчке по самой ссылке (она отсутствует в коде, поскольку я не считаю, что это необходимо для этой проблемы), она срабатывает, и все работает как надо, но вызов jquery отправляет то же значение (Id ) нет.