Die übergabe von Eingabeparametern controller-Methode über Html.ActionLink

Wenn der Benutzer klickt auf ein Html.ActionLink, muss ich anrufen einer controller-Methode, die den download einer csv Bericht für den Benutzer. Ich brauche auch diesen controller die Werte von zwei Eingabe-Felder, der um eine start-und end-date-Reihe, die Sie suchen.

Derzeit kann ich zuweisen das Html.ActionLink Parameter mit jQuery, allerdings sind Sie nicht so dass es zurück an den controller. Beide Parameter in der controller-Methode instanziiert, mit null Werte.

Ich auch nicht mit einer form/submit-Methode, die als, der bereits verwendet wird, die auf diese Besondere form, damit die Benutzer die Daten sehen, die in den Datumsbereich der Antrag vor dem Export in eine csv.

jQuery

$(document).ready(function() {
    $('#startDate').change(function () {
        $('a').attr('start', $(this).val());
    });

    $('#endDate').change(function () {
        $('a').attr('end', $(this).val());
    });
});

ASP MVC 3 Anzeigen

@using (Html.BeginForm())
{
    <div id="searchBox">
        @Html.TextBox("startDate", ViewBag.StartDate as string, new { placeholder = "   Start Date" })
        @Html.TextBox("endDate", ViewBag.EndDate as string, new { placeholder = "   End Date" })
        <input type="image" src="@Url.Content("~/Content/Images/Search.bmp")" alt="Search"  id="seachImage"/>
        <a href="#" style="padding-left: 30px;"></a>
    </div>
    <br />
    @Html.ActionLink("Export to Spreadsheet", "ExportToCsv", new { start = "" , end = ""} )
    <span class="error">
        @ViewBag.ErrorMessage
    </span>
}

Controller-Methode

    public void ExportToCsv(string start, string end)
    {

        var grid = new System.Web.UI.WebControls.GridView();

        var banks = (from b in db.AgentTransmission
                    where b.RecordStatus.Equals("C") &&
                          b.WelcomeLetter
                    select b)
                    .AsEnumerable()
                    .Select(x => new
                               {
                                   LastName = x.LastName,
                                   FirstName = x.FirstName,
                                   MiddleInitial = x.MiddleInitial,
                                   EffectiveDate = x.EffectiveDate,
                                   Status = x.displayStatus,
                                   Email = x.Email,
                                   Address1 = x.LocationStreet1,
                                   Address2 = x.LocationStreet2,
                                   City = x.LocationCity,
                                   State = x.LocationState,
                                   Zip = "'" + x.LocationZip,
                                   CreatedOn = x.CreatedDate
                               });


        grid.DataSource = banks.ToList();
        grid.DataBind();

        string style = @"<style> .textmode { mso-number-format:\@; } </style> ";

        Response.ClearContent();
        Response.AddHeader("content-disposition", "attachment; filename=WelcomeLetterOutput.xls");
        Response.ContentType = "application/excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        grid.RenderControl(htw);
        Response.Write(style);
        Response.Write(sw.ToString());
        Response.End();
    }
InformationsquelleAutor NealR | 2013-08-06
Schreibe einen Kommentar