Maxim Zhukov
Maxim Zhukov

Reputation: 10140

Ajax.BeginForm preload data

I have this view and everything fine with Ajax.BeginForm:

<h2>Index</h2>

@using (Ajax.BeginForm("Search", new AjaxOptions {
    HttpMethod = "GET", 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "users"
})) {
    <input name="q" type="text" />
    <input type="submit" value="Search" />
}

<div class="table-responsive" id="users">
</div>

But, i have a little question.

Right now, when i open this page, there are no table with data - it loads only when form is submitted.

So, my question: is it possible to have preload data (without adding other code)?

When page is loaded, i would like to have already all data without filtering (input uses for filtering when value is typed and form submitted).

Upvotes: 0

Views: 257

Answers (1)

Zabavsky
Zabavsky

Reputation: 13640

Just call your Search action from users div when the page loads. You may not specify any parameter or use the default one. I assume you have something like this:

public ActionResult Search(string q)
{
    var users = _usersRepository.GetAll();
    if(!string.IsNullOrEmpty(q))
        users = users.Where(user => string.Equals(user.Name, q));
    return PartialView("_Search", users);
}

And in the view:

<div class="table-responsive" id="users">
    @Html.Action("Search")
</div>

Upvotes: 1

Related Questions