我正在使用ActionLink和ajax调用将部分视图放在父页面中。问题是我的控制器和部分视图被调用两次,在第二次调用时,传递给操作的参数是null。
我尝试过两个版本的ActionLink。只调用一次控制器,但参数为空。第二次打两次电话,第二次打电话给他们
如何阻止发送空参数的第二个调用,或者如果必须进行第二次调用,我该如何维持这些值?
以下是进行两次调用的链接:
@Ajax.ActionLink(stdFName, "Action", "Controller", new { studentNumber = stdNum }, new AjaxOptions { UpdateTargetId = "theTimes", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" }, new { @class = "studentName", id = "linkNo" + appendId.ToString() });
这是仅进行一次调用但参数为空的链接
@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);
}
});
});
答案 0 :(得分:0)
你的第一个actionlink会调用你写的javascript,而第二个不会(你没有在第二个上设置课程)。
您的第一个actionlink将调用JavaScript并从其自己的链接执行第二次调用。因此这两个电话。我确信一个调用具有正确的参数,第二个调用为空
您需要将您传递的参数与操作匹配:
var parms = { studentNumber : linkID };
假设你的动作有一个参数studentnumber
public action Action(string studentNumber){// do stuff and return partial view}