将数据从视图传递到dotnet核心中的控制器

时间:2019-02-12 14:39:16

标签: jquery asp.net-mvc jquery-ui .net-core

在我的项目中,我需要能够在网页上显示给定日期范围的数据。

我的控制器是这样:

public JiraDashboardController(IOptions<Config> app)
{
    appSettings = app;
    _jira = Jira.CreateRestClient(appSettings.Value.BaseUrl, appSettings.Value.UserName,appSettings.Value.Password);
    _db = new UserDashboard(appSettings.Value.UserName, appSettings.Value.ProjectName, _jira);
    startDate = new DateTime(2019, 01, 01); // debugging purposes
    endDate = new DateTime(2019, 02, 11);  // debugging purposes
}

public ActionResult Index(DateTime fromDate, DateTime toDate)
{
    ViewData["OpenedIssues"] = _db.IssuesOpenedInRange(fromDate, toDate);
        ViewData["ClosedIssues"] = _db.IssuesClosedInRange(fromDate, toDate);

    return View();
}

和相应的视图:

@model MyProject.Models.Jiras

@{
    ViewData["Title"] = "Index";
}

<h2>Index</h2>
<h3>Total issues opened: @ViewData["OpenedIssues"]</h3>
<h3>Total issues closed: @ViewData["ClosedIssues"]</h3>

<div>
    <p>From Date: <input type="text" id="fromdate"></p>
</div>
<br/>
<br/>
<div>
    <p>To Date: <input type="text" id="toDate"></p>
</div>

<script>
    $(function () {
        $("#fromdate").datepicker();
        $("#toDate").datepicker();
    });
</script>

我假设使用的是standard jQuery date picker,但我不知道将所选值重新返回方法的最佳方法。

做到这一点的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

<form asp-controller="YourControllerName" asp-action="Index" method="post">
        <div>
            <p>From Date: <input type="text" id="fromdate" name="fromDate"></p>
        </div>
        <br/>
        <br/>
        <div>
            <p>To Date: <input type="text" id="toDate" name="toDate"></p>
        </div>
        <input type="submit" value="Submit" />
    </form>

别忘了在Views文件夹中添加 _ViewIports.cshtml 并添加以下代码,这将启用标记助手。

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

别忘了为您的输入添加名称,就像我所做的一样。 模型绑定将处理将字符串转换为Date的问题。