这是一些html
<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>
在页面的下方
<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>
这是点击按钮时调用的javascript
$('.reportLink').click(function() {
if (CheckDateAndProps() === true) {
$('#reportName').val(this.id);
var formData = $("#frmSubmit").serializeArray();
$.post('Home/PostViewer/', formData);
}
});
注意......我之前确实有过这样的$ .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");
}
到目前为止,世界上一切都很好。我正在使用上述方法并填充所有值。
这是获取ActionResult方法
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Viewer(string reportYear,
string reportMonth,
string propIds,
string reportName,
string reportYearFrom,
string reportMonthFrom,
string reportYearTo,
string reportMonthTo)
{
return View();
}
我也打了这个...没有在参数中看到任何值...但那只是因为我还没有通过它们......我不认为这是保持Viewer页面不显示?
现在......人们会期望渲染Viewer视图......对吗?...我所看到的就是从这里调用的页面......查看器页面永远不会被渲染???! !?!?
这是来自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
);
我可以直接浏览该页面 http://localhost:50083/Home/Viewer 当我这样做时,我点击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>
,javascript看起来像这样
$('.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");
}
}
瞧!...我看到了视图!...如果reportName是foobar ......我看到了FoobarView!
答案 0 :(得分:1)
让它工作......把按钮放在表格中 所以现在表格看起来像这样
<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>
,javascript看起来像这样
$('.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");
}
}
瞧!...我看到了视图!...如果reportName是foobar ......我看到了FoobarView!