下拉列表选择更改的更新页面

时间:2018-01-17 18:31:49

标签: c# asp.net razor

所以我是一个asp.net和razor页面的初学者,我一直在努力将我的WPF项目改造成一个网络程序。

我目前的障碍是尝试在下拉菜单更改选项时正确获取报告。此下拉列表当前由一系列报告类型填充,并由此代码生成。

@Html.DropDownListFor(model=>model.SelectedReport,
                          Html.GetEnumSelectList(Model.SelectedReport.GetType()),
                          "Select Report",
                          new {@id = "ReportDropdown", @onchange = "UpdateReport()"})

我最终使用此函数来处理onchange事件。

function UpdateReport() {
    var reportID = $("ReportDropdown").val();

    $.ajax
        ({
            url: '/Reporting/UpdateReport',
            type: 'POST',
            datatype: 'application/JSON',
            contentType: 'application/JSON',
            data: JSON.stringify({
                reportID: +reportID
            }),
            success: function (result) {
                alert(result)
            },
            error: function () {
                alert("That wasn't right.")
            }
        });
}

我相信这是有效的,因为"那不对。"更改选择时会发出警报。但是在这一点上,我无法弄清楚为什么报告不会使用此PageModel代码进行更新。

public class ReportingModel : PageModel
{
    public DataView Report { get; private set; }

    [Display(Name ="Selected Report")]
    public ReportGenerator.ReportTypes SelectedReport { get; set; }

    public ReportGenerator generator { get; set; }

    public IActionResult OnGet()
    {
        generator = new ReportGenerator()
        {
            SelectedReport = ReportGenerator.ReportTypes.DailySummary
        };

        Report = generator.Report.DefaultView;

        return Page();
    }

    public async Task<IActionResult> OnPostUpdateReport()
    {
        generator.SelectedReport = SelectedReport;

        this.Report = generator.Report.DefaultView;

        return Page();
    }
}

有关如何使其正常工作的任何建议,还是有更好的方法可以用来实现这一目标?

0 个答案:

没有答案