У меня есть несколько форм ajax на странице, которые содержат одни и те же элементы, у меня есть функция jquery при успешном выполнении, которая ищет дочерние элементы формы и обновляет, но мне нужно каким-то образом передать идентификатор формы, которая отправила запрос контроллеру вместе с другими значениями из формы, как лучше всего это сделать? Возможно, добавьте скрытое поле в форму, а при загрузке страницы получите родительский идентификатор и поместите его в это поле с помощью jQuery. Но я не знаю jquery так хорошо, чтобы сделать это.
@using (Ajax.BeginForm("Index", "Controller",new AjaxOptions { OnFailure = "error", OnSuccess ="sucess" }))
{
<input type="submit" name="value" class="up" value="1" />
<span class="result">0</span>
<input type="submit" name="value" class="down" value="-1" />
}
public ActionResult Index(int value ,string formID)
{
//do something
}
function sucess(arg) {
var json = $.parseJSON(arg.responseText);
var form = $("form#" + json.FormID);
var up = form.children('input.up');
var down = form.children('input.down');
form.children('span.result').replaceWith(json.Result);
if (json.Result == 1) {
up.addClass('active');
}
if (json.Result == -1) {
down.addClass('active');
}
}
ОБНОВЛЕНИЕ: это частичное представление, которое загружается n раз, поэтому я не могу узнать formID, пока страница не отобразится в браузере.