55

I have looked online but was unable to find the difference between using @Url.Content vs @Url.Action.

SharpC
  • 6,220
  • 4
  • 42
  • 39
Nate Pet
  • 41,226
  • 116
  • 259
  • 398

2 Answers2

72

Url.Content is used when you wish to resolve a URL for any file or resource on your site and you would pass it the relative path:

@Url.Content("~/path/file.htm")

Url.Action is used to resolve an action from a controller such as:

@Url.Action("ActionName", "ControllerName", new { variable = value })

See here for more info:

http://geekswithblogs.net/liammclennan/archive/2008/05/21/122298.aspx - Dead link

JDandChips
  • 9,151
  • 3
  • 28
  • 45
Richard
  • 21,218
  • 13
  • 61
  • 100
10

@Url.Action is used to create a URL to an Action in a controller. For example, assuming you had a controller that looked like this:

public YourControllerController : Controller
{
    public ActionResult YourAction() { /* stuff */ }
}

You could create a URL that invokes the action with it like this:

Url.Action("YourAction", "YourController")

@Url.Content resolves a virtual path into an absolute path. Example:

Url.Content("~/images/image.jpg")
vcsjones
  • 133,702
  • 30
  • 291
  • 279