Skip to content Skip to sidebar Skip to footer

.net Mvc 4 Application - Call From Ajax To A Function In Controller

I'm creating mvc 4 application where I call a function in controller from a js file using ajax. When I call the function from ajax, its calling the respective function properly. Bu

Solution 1:

I believe your browser will block the file downloaded via ajax, this is because JavaScript cannot interact with disk. If you want to get this working, you will have to do so using a form post.

@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { id = "DownloadForm" }))
{
    ... form data would be here if you had any...
    <button type="submit">Download</button>
}

You would then return a FileStreamResult with the contents of the file to be downloaded.

public ActionResult Action(FormModel model){
    // Do work to get data for file and then return your file result to the browser.returnnewFileStreamResult(newMemoryStream(fileData), "text/csv") // set the document type that is valid for your file
    {
        FileDownloadName = "users.csv"
    };
}

Solution 2:

I ran all of your code except for the following since you didn't provide the UserModel and dummydata classes in your question:

private List<UserModel> GetUsersHugeData()
{
    var usersList = new List<UserModel>();
    UserModel user;

    List<dummyData> data = new List<dummyData>();

    using (Database1Entities dataEntity = new Database1Entities())
    {
        data = dataEntity.dummyDatas.ToList();
    }

    for (int i = 0; i < data.Count; i++)
    {
        user = new UserModel
        {
            ID = data[i].Id,
            ProductName = data[i].ProductName,
            Revenue = data[i].Revenue,
            InYear = data[i].InYear.Year
        };
        usersList.Add(user);
    }
 }

The end result was that you had a typo in your ajax 'url' parameter. Also, if you are going to check for errors, set your function to

function(jqxhr, status, error) {
    alert(error);
}

to check the error being thrown.

Post a Comment for ".net Mvc 4 Application - Call From Ajax To A Function In Controller"