在 MVC 中使用报表控制器打开 .aspx 页面
Open .aspx page with report controller in MVC
我有一个带按钮的 MVC .cshtml 页面。它在一个网格中,我使用 jquery
将行 ID 传递给控制器
<button type="submit" id="btn_View" name="view"
class="btn_View">
$(".btn_View_Question").click(function () {
var json = [];
var obj = {};
var rowID = $(this).closest('tr').attr('id');
obj.RowId= rowID ;
console.log(obj);
json.push(obj)
var responseDetails = JSON.stringify(json);
$.ajax({
url: "/Home/View",
type: "POST",
data: responseDetails,
dataType: "json",
traditional: true,
contentType: "application/json; charset=utf-8",
});
});
在控制器中class我正在重定向到 aspx 报告页面,如下所示
public RedirectResult ViewQuestionnaire(string[] id)
{
var reportParameters = new Dictionary<string, string>();
reportParameters.Add("ID", id[0]);
Session["reportParameters"] = reportParameters;
return Redirect("../Reports/ViewQuestionarie.aspx");
}
没有加载 aspx 页面。当我调试它时,aspx 页面的 page_load 也在执行。我在这里做错了什么
重定向将 return 以新的 url 作为位置的 302 响应 header value.You 不应该调用一个操作方法 return 是来自 ajax 调用的 302 响应。
您似乎想将一些数据设置为 Session。您可以使用 ajax 调用来完成该部分。而不是 returning 302 响应,return 具有 url 的 json 数据结构,您希望浏览器被重定向。
public ActionResult ViewQuestionnaire(string[] id)
{
var reportParameters = new Dictionary<string, string>();
reportParameters.Add("ID", id[0]);
Session["reportParameters"] = reportParameters;
return Json(new {status = "success", url="../Reports/ViewQuestionarie.aspx"});
}
而在ajax调用的success
/done
事件中,可以读取json的url属性响应返回并使用它进行重定向。
$.ajax({
//Omitted some parameters
success: function(res) {
if (res.status === "success") {
window.location.href = res.url;
}
}
});
我有一个带按钮的 MVC .cshtml 页面。它在一个网格中,我使用 jquery
将行 ID 传递给控制器<button type="submit" id="btn_View" name="view"
class="btn_View">
$(".btn_View_Question").click(function () {
var json = [];
var obj = {};
var rowID = $(this).closest('tr').attr('id');
obj.RowId= rowID ;
console.log(obj);
json.push(obj)
var responseDetails = JSON.stringify(json);
$.ajax({
url: "/Home/View",
type: "POST",
data: responseDetails,
dataType: "json",
traditional: true,
contentType: "application/json; charset=utf-8",
});
});
在控制器中class我正在重定向到 aspx 报告页面,如下所示
public RedirectResult ViewQuestionnaire(string[] id)
{
var reportParameters = new Dictionary<string, string>();
reportParameters.Add("ID", id[0]);
Session["reportParameters"] = reportParameters;
return Redirect("../Reports/ViewQuestionarie.aspx");
}
没有加载 aspx 页面。当我调试它时,aspx 页面的 page_load 也在执行。我在这里做错了什么
重定向将 return 以新的 url 作为位置的 302 响应 header value.You 不应该调用一个操作方法 return 是来自 ajax 调用的 302 响应。
您似乎想将一些数据设置为 Session。您可以使用 ajax 调用来完成该部分。而不是 returning 302 响应,return 具有 url 的 json 数据结构,您希望浏览器被重定向。
public ActionResult ViewQuestionnaire(string[] id)
{
var reportParameters = new Dictionary<string, string>();
reportParameters.Add("ID", id[0]);
Session["reportParameters"] = reportParameters;
return Json(new {status = "success", url="../Reports/ViewQuestionarie.aspx"});
}
而在ajax调用的success
/done
事件中,可以读取json的url属性响应返回并使用它进行重定向。
$.ajax({
//Omitted some parameters
success: function(res) {
if (res.status === "success") {
window.location.href = res.url;
}
}
});