Avatar of Member_2_1242703
Member_2_1242703
 asked on

MVC: Sending an ID from a view to a controller and doing something with it

I have a button on a view located at: localhost:99998/MyController/Edit/5017

 <input type="button" value="Delete" class="btn btn-danger" onclick="location.href='@Url.Action("DelRec", "MyController")'" />

Open in new window


I want to take the ID (in this case 5017)
send it to the controller action (DelRec)
then update the correlating record (5017)

How do I do this?
.NET MVCWeb DevelopmentC#

Avatar of undefined
Last Comment
Member_2_1242703

8/22/2022 - Mon
Prakash Samariya

Hope your controller action method "DelRec" has parameter to accept ID like:
public ActionResult DelRec(int id)
{...}

Open in new window

To get id from URL (as your current url is : localhost:99998/MyController/Edit/5017)
Store into variable [myId]
@{ ... 
var myId = Url.RequestContext.RouteData.Values["id"]; 
...}

Open in new window

To pass parameter (here id) use below code (use variable [myId])
 <input type="button" value="Delete" class="btn btn-danger" 
onclick="location.href='@Url.Action("DelRec", "MyController", new {id=myId})'" />

Open in new window

Member_2_1242703

ASKER
Seems like this way is trying to redirect to a View called DelRec, unless I'm doing something wrong. All I want to do is run some code.
ASKER CERTIFIED SOLUTION
Member_2_1242703

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Prakash Samariya

@Mike, it is not necessary to create form just to send your id to some other action method, If you have other work to manipulate and send, then it is fine!

Just for sending id to other action method, I guess my solution will work #a42061177 !
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
Member_2_1242703

ASKER
I was not successful in getting your solution to work. As I stated earlier, it was directing my browser to a view called DelRec/ID
Furthermore, my initial request was to update a record not "Just for sending id to other action method"

I would love to know how to do this correctly as while this "add another form" method works for me now, I see this as being problematic most other times.
Prakash Samariya

<input type="button" value="Delete" class="btn btn-danger" onclick="location.href='@Url.Action("DelRec", "MyController")'" />
that's what your question stated!
I want to take the ID (in this case 5017)
send it to the controller action (DelRec)
You were needed take id from edit url, and then to pass id to DelRec!

Anyways, best of luck!
Member_2_1242703

ASKER
No other relevant solutions provided...figured it out myself
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.