I am using multiple partial views on my View.
on the left-hand side. I have some link button.
In middle, I have 2 partial views let us suppose Up and Down
I m able to update the Up partial view
now I want to update Down partial view on the click of the same link button
I am able to send only one UpdateTargetID in Ajax.ActionLink button
but I want to update 2 Partial views on the click of the same button.
1) Is there any way I can pass more than one UpdateTargetID in Ajax.ActionLink
or
2) I can return Multiple partial views in Home Controller
or any other way as you suggested
Please reply to me
Thanks, Everyone for replying
Let me tell you what I have done in order to refresh multiple partial view on a single click
This is the Action Link which I m using to click on
Here I m using a OnSucess Function of this Action link in order to update, This Action link is on a partial view
<%= Ajax.ActionLink("Select", "Employee", new { Id = Employee.EmployeeID }, new AjaxOptions { UpdateTargetId = "EmployeeDiv", HttpMethod = "Post", OnSuccess = "function(){EmployeeHistory(-2," + Employee.EmployeeID.ToString() + ");}" })%>
This is a javascript that I m calling from a partial view
function EmployeeHistory(EmployeeID) {
var url = '<%= Url.Action("PartialviewAction", "ControllerName") %>'
$('#PartialviewDiv1').load(url, { Id: EmployeeID });
var url1 = '<%= Url.Action("PartialviewAction", "ControllerName") %>'
$('#PartialviewDiv2').load(url1, { Id: EmployeeID });
}
and these two div are in Index view which I want to update
<div id="Paritalview div1"><% Html.RenderPartial("PartialViewname1"); %></div>
<div id="Paritalview div2"><% Html.RenderPartial("PartialViewname2"); %></div>
Yes there is – don’t use
Ajax.ActionLink.IMO, the MS Ajax library, as with Web Forms, is bloated.
Keep it simple – use jQuery – then you have total control:
However, since you’re updating both panels, I would suggest wrapping those two middle panels in a partial view of it’s own – then serve that via a single action method – that way you only need 1 ajax call.
Edit
As @FelixM mentions, you should use
Url.ActionorUrl.RouteUrlto generate the URL for the AJAX call, so if your routes change then your JS need not, e.g:.get('@Url.Action('Controller', 'Action1')', function(data)or
.get('@Url.RouteUrl('SomeNamedRoute')', function(data)If your putting this script in an external file then you’ll need to use a technique to set the url in the main view, then read from the external variable.
Such techniques include a JavaScript variable, hidden field, passing URL to function as parameter, etc.