Я использую ActionLink и ajax-вызов для частичного просмотра на родительской странице. Проблема заключается в моем контроллере, а частичный вид вызывается дважды, а во втором вызове параметры, переданные в действие, равны нулю.
Ive попробовал две версии ActionLink. Один вызывает контроллер только один раз, но параметры равны нулю. Второй делает два вызова, а во второй раз - theyre null
Как я могу предотвратить второй вызов, который отправляет нулевые параметры или если должен быть второй вызов, как я могу поддерживать значения?
Вот ссылка, которая делает два вызова:
@Ajax.ActionLink(stdFName, "Action", "Controller", new { studentNumber = stdNum }, new AjaxOptions { UpdateTargetId = "theTimes", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" }, new { @class = "studentName", id = "linkNo" + appendId.ToString() });
Heres ссылка, которая делает только один вызов, но параметры равны нулю
@Ajax.ActionLink(stdFName, "Action", "Controller", new AjaxOptions { UpdateTargetId = "theTimes", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" });
Вот сценарий:
$("a.studentName").on("click", function () {
var linkID = this.id;
var theProp = $(this).attr("href");
alert(theProp + linkID);
var equalPosition = theProp.indexOf("=");
var pram = theProp.substring(equalPosition + 1);
alert(pram);
var parms = { data: linkID };
$.ajax({
type: "GET",
url: "/Controller/Action",
data: parms,
dataType: "html",
success: function (data) {
$("theTimes").html(data);
}
});
});
Ваш первый actionlink вызовет javascript, который вы написали, а второй - нет (вы не задали класс на втором).
Ваш первый actionlink вызовет JavaScript и выполнит второй вызов из самой ссылки. следовательно, два вызова. Я уверен, что один вызов имеет правильные параметры, а второй -
Вам нужно сопоставить параметры, которые вы передаете с действием:
var parms = { studentNumber: linkID };
предполагая, что у вас есть параметр studentnumber
public action Action(string studentNumber){//do stuff and return partial view}