Suppose that I have this partial view:
Your name is <strong>@firstName @lastName</strong>
which is accessible through a child only action like:
[ChildActionOnly] public ActionResult FullName(string firstName, string lastName) { }
And I want to use this partial view inside another view with:
@Html.RenderPartial("FullName")
In other words, I want to be able to pass firstName ans lastName from view to partial view. How should I do that?
You're almost there, just call it like this: Html. RenderPartial( "ProductImageForm", image, new ViewDataDictionary { { "index", index } } ); Note that this will override the default ViewData that all your other Views have by default.
Here is another way to do it if you want to use ViewData:
@Html.Partial("~/PathToYourView.cshtml", null, new ViewDataDictionary { { "VariableName", "some value" } })
And to retrieve the passed in values:
@{ string valuePassedIn = this.ViewData.ContainsKey("VariableName") ? this.ViewData["VariableName"].ToString() : string.Empty; }
Use this overload (RenderPartialExtensions.RenderPartial
on MSDN):
public static void RenderPartial( this HtmlHelper htmlHelper, string partialViewName, Object model )
so:
@{Html.RenderPartial( "FullName", new { firstName = model.FirstName, lastName = model.LastName}); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With