Jquery Post调用RedirectToAction,但未呈现RedirectToAction中指定的视图
下面是一些htmlJquery Post调用RedirectToAction,但未呈现RedirectToAction中指定的视图,jquery,asp.net-mvc,Jquery,Asp.net Mvc,下面是一些html <form id="frmSubmit" action="/Viewer" style="display:none;"> <div id="renderSubmit" class="renderReport"> <input type="hidden" name="reportYear" id="reportYear" value="" /&
<form id="frmSubmit" action="/Viewer" style="display:none;">
<div id="renderSubmit" class="renderReport">
<input type="hidden" name="reportYear" id="reportYear" value="" />
<input type="hidden" name="reportMonth" id="reportMonth" value="" />
<input type="hidden" name="propIds" id="propIds" value="" />
<input type="hidden" name="reportName" id="reportName" value="" />
<input type="hidden" name="reportYearFrom" id="reportYearFrom" value="" />
<input type="hidden" name="reportMonthFrom" id="reportMonthFrom" value="" />
<input type="hidden" name="reportYearTo" id="reportYearTo" value="" />
<input type="hidden" name="reportMonthTo" id="reportMonthTo" value="" />
</div>
</form>
注意…我确实像之前一样收到了$.post…但似乎没有任何区别
$.post('Home/PostViewer/',
formData,
function(data) {
alert(data.Result);
}, "json");
这是控制器代码
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult PostViewer(string reportYear,
string reportMonth,
string propIds,
string reportName,
string reportYearFrom,
string reportMonthFrom,
string reportYearTo,
string reportMonthTo)
{
return RedirectToAction("Viewer");
}
到目前为止,世界上的一切都是好的。我点击上面的方法,所有的值都被填充
下面是GetActionResult方法
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Viewer(string reportYear,
string reportMonth,
string propIds,
string reportName,
string reportYearFrom,
string reportMonthFrom,
string reportYearTo,
string reportMonthTo)
{
return View();
}
我也在点击这个…在参数中看不到任何值…但那只是因为我还没有传递它们…我不认为这是阻止查看器页面显示的原因
现在…有人会期望查看器视图被呈现…对吗?…我所看到的只是调用它的页面…查看器页面从未被呈现
这是来自global.asax的路线
routes.MapRoute(
"Viewer", // Route name
"Home/Viewer", // URL with parameters
new { controller = "Home", action = "Viewer" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
我可以直接浏览到这个页面
当我这样做的时候,我点击ActionResult方法,页面呈现的很好
非常感谢您的帮助
编辑
让它工作了…把按钮放在表格上 现在这个表单看起来像这样
<form id="frmSubmit" name="frmSubmit" action="/Home/Viewer" method="post" target="_blank">
<div id="renderSubmit" class="renderReport">
<input type="hidden" name="reportYear" id="reportYear" value="" />
<input type="hidden" name="reportMonth" id="reportMonth" value="" />
<input type="hidden" name="propIds" id="propIds" value="" />
<input type="hidden" name="reportName" id="reportName" value="" />
<input type="hidden" name="reportYearFrom" id="reportYearFrom" value="" />
<input type="hidden" name="reportMonthFrom" id="reportMonthFrom" value="" />
<input type="hidden" name="reportYearTo" id="reportYearTo" value="" />
<input type="hidden" name="reportMonthTo" id="reportMonthTo" value="" />
</div>
<div id="reportList" class="renderReport">
<fieldset style="width:105%;">
<legend class="reportStepLegend">Step 3. <br /> Click a report name below to view a report</legend>
<br />
<% foreach (ReportMetaData item in (ReportMetaDataContainer)ViewData.Model) { %>
<div>
<input id=<%=item.SSRSName%> type="button" class="reportLink" value="<%=item.DisplayName%>" />
</div>
<%}%>
</fieldset>
</div>
</form>
$('.reportLink').click(function() {
if (CheckPropIds() === true) {
$('#reportName').val(this.id);
$("#frmSubmit").submit();
}
});
<form id="frmSubmit" name="frmSubmit" action="/Home/Viewer" method="post" target="_blank">
<div id="renderSubmit" class="renderReport">
<input type="hidden" name="reportYear" id="reportYear" value="" />
<input type="hidden" name="reportMonth" id="reportMonth" value="" />
<input type="hidden" name="propIds" id="propIds" value="" />
<input type="hidden" name="reportName" id="reportName" value="" />
<input type="hidden" name="reportYearFrom" id="reportYearFrom" value="" />
<input type="hidden" name="reportMonthFrom" id="reportMonthFrom" value="" />
<input type="hidden" name="reportYearTo" id="reportYearTo" value="" />
<input type="hidden" name="reportMonthTo" id="reportMonthTo" value="" />
</div>
<div id="reportList" class="renderReport">
<fieldset style="width:105%;">
<legend class="reportStepLegend">Step 3. <br /> Click a report name below to view a report</legend>
<br />
<% foreach (ReportMetaData item in (ReportMetaDataContainer)ViewData.Model) { %>
<div>
<input id=<%=item.SSRSName%> type="button" class="reportLink" value="<%=item.DisplayName%>" />
</div>
<%}%>
</fieldset>
</div>
</form>
$('.reportLink').click(function() {
if (CheckPropIds() === true) {
$('#reportName').val(this.id);
$("#frmSubmit").submit();
}
});
它点击这里的控制器代码
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Viewer(string reportYear,
string reportMonth,
string propIds,
string reportName,
string reportYearFrom,
string reportMonthFrom,
string reportYearTo,
string reportMonthTo)
{
if (reportName == "foobar")
{
return RedirectToAction("FoobarView");
}
else
{
return View("Viewer");
}
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Viewer(string reportYear,
string reportMonth,
string propIds,
string reportName,
string reportYearFrom,
string reportMonthFrom,
string reportYearTo,
string reportMonthTo)
{
if (reportName == "foobar")
{
return RedirectToAction("FoobarView");
}
else
{
return View("Viewer");
}
}
瞧!。。。我看到了风景!。。。如果报告名是foobar…我会看到FoobarView 让它工作了……把按钮放在表单上 现在这个表单看起来像这样
<form id="frmSubmit" name="frmSubmit" action="/Home/Viewer" method="post" target="_blank">
<div id="renderSubmit" class="renderReport">
<input type="hidden" name="reportYear" id="reportYear" value="" />
<input type="hidden" name="reportMonth" id="reportMonth" value="" />
<input type="hidden" name="propIds" id="propIds" value="" />
<input type="hidden" name="reportName" id="reportName" value="" />
<input type="hidden" name="reportYearFrom" id="reportYearFrom" value="" />
<input type="hidden" name="reportMonthFrom" id="reportMonthFrom" value="" />
<input type="hidden" name="reportYearTo" id="reportYearTo" value="" />
<input type="hidden" name="reportMonthTo" id="reportMonthTo" value="" />
</div>
<div id="reportList" class="renderReport">
<fieldset style="width:105%;">
<legend class="reportStepLegend">Step 3. <br /> Click a report name below to view a report</legend>
<br />
<% foreach (ReportMetaData item in (ReportMetaDataContainer)ViewData.Model) { %>
<div>
<input id=<%=item.SSRSName%> type="button" class="reportLink" value="<%=item.DisplayName%>" />
</div>
<%}%>
</fieldset>
</div>
</form>
$('.reportLink').click(function() {
if (CheckPropIds() === true) {
$('#reportName').val(this.id);
$("#frmSubmit").submit();
}
});
<form id="frmSubmit" name="frmSubmit" action="/Home/Viewer" method="post" target="_blank">
<div id="renderSubmit" class="renderReport">
<input type="hidden" name="reportYear" id="reportYear" value="" />
<input type="hidden" name="reportMonth" id="reportMonth" value="" />
<input type="hidden" name="propIds" id="propIds" value="" />
<input type="hidden" name="reportName" id="reportName" value="" />
<input type="hidden" name="reportYearFrom" id="reportYearFrom" value="" />
<input type="hidden" name="reportMonthFrom" id="reportMonthFrom" value="" />
<input type="hidden" name="reportYearTo" id="reportYearTo" value="" />
<input type="hidden" name="reportMonthTo" id="reportMonthTo" value="" />
</div>
<div id="reportList" class="renderReport">
<fieldset style="width:105%;">
<legend class="reportStepLegend">Step 3. <br /> Click a report name below to view a report</legend>
<br />
<% foreach (ReportMetaData item in (ReportMetaDataContainer)ViewData.Model) { %>
<div>
<input id=<%=item.SSRSName%> type="button" class="reportLink" value="<%=item.DisplayName%>" />
</div>
<%}%>
</fieldset>
</div>
</form>
$('.reportLink').click(function() {
if (CheckPropIds() === true) {
$('#reportName').val(this.id);
$("#frmSubmit").submit();
}
});
它点击这里的控制器代码
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Viewer(string reportYear,
string reportMonth,
string propIds,
string reportName,
string reportYearFrom,
string reportMonthFrom,
string reportYearTo,
string reportMonthTo)
{
if (reportName == "foobar")
{
return RedirectToAction("FoobarView");
}
else
{
return View("Viewer");
}
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Viewer(string reportYear,
string reportMonth,
string propIds,
string reportName,
string reportYearFrom,
string reportMonthFrom,
string reportYearTo,
string reportMonthTo)
{
if (reportName == "foobar")
{
return RedirectToAction("FoobarView");
}
else
{
return View("Viewer");
}
}
瞧!。。。我看到了风景!。。。如果报告名是foobar…我会看到FoobarView 如果您找到了解决方案,请将其作为答案,并将答案标记为已接受。这个问题看起来还没有解决。是的,先生!马上,上校!