How to pass parameter in @url.Action
@Sribin, below is fundamental which you can use,
your controller code will be,
// GET: home
public ActionResult Index()
{
User uObject = new User();
uObject.FirstName = "abc";
return View(uObject);
}
public ActionResult IndexTest(string id)
{
return View();
}
your cshtml code will be
@model WebApplication2.Models.User
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<br />
<tr>
<input type="button" onclick="SaveLookup()" value="submit" />
<button type="button" class="btn btn-inverse btn-danger"
onclick="@("window.location.href='" + @Url.Action("IndexTest", "Home", new {id = Model.FirstName}) +"'");">
Link
</button>
</tr>
Instead of using model value you can grap value from view bag or any other tempdata too!!
how to pass parameter with @url.action to controller
If is was an ActionLink
you would do this:
@Html.ActionLink("View1", "Task", new {id=0}, null);
So in your case, using Url.Action()
it would be:
href="@Url.Action("View1", "Task", new {id=0})"
Which in your sample is:
<a class="v-patient pointer" data-id="0" href="@Url.Action("View1", "Task", new {id=0})">View Patient</a></td>
Url.Action parameters?
The following is the correct overload (in your example you are missing a closing }
to the routeValues
anonymous object so your code will throw an exception):
<a href="<%: Url.Action("GetByList", "Listing", new { name = "John", contact = "calgary, vancouver" }) %>">
<span>People</span>
</a>
Assuming you are using the default routes this should generate the following markup:
<a href="/Listing/GetByList?name=John&contact=calgary%2C%20vancouver">
<span>People</span>
</a>
which will successfully invoke the GetByList
controller action passing the two parameters:
public ActionResult GetByList(string name, string contact)
{
...
}
Pass Parameter To Controller Using URL.ACTION
Make sure your query string name matches with your action method parameter name
var url = '@Url.Action("HoursByDay", "DashBoard",
new { dateCompleted= "01/11/2013" })';
alert(url);
If you want to pass a javascript variable value as the value for dateCompleted param, You should first build the url to the action method (without any parameters) and append the querystring value in javascript.
var myDate = $(#yourInputFieldIdForDate").val();
alert(myDate);
var url = '@Url.Action("HoursByDay", "DashBoard")?dateCompleted=' + myDate;
alert(url);
Replace the jQuery selector to get the date value to suit to your requirements.
Passing url parameters from Url.Action variables in javascript
You usage of Url.Action()
in the script is generating &
instead of &
in the url, so instead of
../Controller/Action?candidacyId=cId&candidateId=cnId&typeOfAction=tpA"
you need to generate
../Controller/Action?candidacyId=cId&candidateId=cnId&typeOfAction=tpA"
You can do this by wrapping it in Html.Raw()
so its not encoded
addCandidateTaskUrl: "@Html.Raw(Url.Action("Action", "Controller", new { candidacyId = "cId", candidateId = "cndId", typeOfAction = "tpA" }))"
However, you can make this simpler and more efficient (without the need for multiple .replace()
) by just generating the base url, and the appending the query string parameters using the $.param method
view.params = {
baseUrl: '@Url.Action("Action", "Controller")' // Html.Raw not required
and
var queryString = $.param({ param1Id: actualParam1Id, param2Id: actualParam2Id, ... });
var uri = params.baseUrl + '?' + queryString;
Related Topics
How to Create a 2D Array from a CSV File
How to Generate Database Tables from C# Classes
How to Iterate Though Each Child Node in an Xml File
How to Use Decimal Type in Mongodb
C# Json.Net How to Ignore a Property in Deserialization But Not in Serialization
Response to Preflight Request Doesn't Pass Access Control Check (Angular2)
How to Download File With ASP.NET on Buttton'S Onclick Event
Remove the Escape Sequence '\' from String to Convert It to Xmldocument
A Better Way to Use Automapper to Flatten Nested Objects
How to Check If a Windows Form Is Already Open, and Close It If It Is
C# List Join List and Filter from Another List
Accessing a Shared File (Unc) from a Remote, Non-Trusted Domain With Credentials
Using Linq for Multiple Condition in Where
How to Programmatically Set the System Volume
Json.Net: Deserilization With Double Quotes
Map a Property to List of Object Using Automapper Createmap
How to Cast Object to List<Object> and Turn It into an Array