我在此页面上,从下拉列表中选择一个项目,然后ajax调用将所选参数传递给控制器中的新操作,如下所示:
function select(e) {
var unit = $("#unitList").data("kendoDropDownList").value();
var url = '@Url.Content("~/Reports/UnitRunReport/")';
$.ajax({
url: url,
data: { selectedUnit: unit },
type: 'GET',
dataType: 'json',
success: function (data) {
//
},
error: function () {
//
}
});
}
这是我的控制器:
public class ReportsController : BaseController
{
public ReportsViewModel Model { get; set; }
//
// GET: /Reports/
public ActionResult Index()
{
Model = new ReportsViewModel
{
Units = UnitClient.GetListOfUnits(true, "")
};
return View(Model);
}
[HttpGet]
public ActionResult UnitRunReport(string selectedUnit)
{
var unit = Convert.ToInt32(selectedUnit);
Model = new ReportsViewModel
{
UnitRuns = RunClient.GetRunListForUnit(unit)
};
return View(Model);
}
}
我必须将两个操作(Index和UnitRunReport)的视图分开。调试时,它将正确的参数传递给UnitRunReport操作,并通过
return View(Model)
语句。有人可以解释一下为什么我没有从索引页面重定向到新的UnitRunReport视图吗? 最佳答案
您正在执行ajax通话。 ajax调用不会重定向页面。
重定向到get方法:
window.location = "@Url.Content("~/Reports/UnitRunReport")?selectedunit=" + $("#unitList").data("kendoDropDownList").value();
关于c# - 为什么我的 Action 未返回 View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18099018/