lovettjay
asked on
ASP.net MVC passing parameters from view to controller
Hello, i am trying to move some of my member's properties table to a new create action in the members exams controller. I am able to import all of the parameters however the default ID from the members table keeps routing to the corresponding ID in the members exam controller instead of creating a new member exam. I know where my problem it as but don't know how to fix. I have tried to change in the RouteConfig however the new post will not save.
View
I know id = item.members_id is cause the problem but how do I fix it to create a new exam. I have tried to eliminate the ID and use null after the parameters.
Controller:
In a different try I have changed the route config:
View - I have taken out the ID parameter:
@Html.ActionLink("Add Exam", "Create", "members_exams", new { name = item.members_firstname,
lname = item.members_lastname,
mname = item.members_middlename,
ssn = item.members_ssn,
email = item.members_email,
address = item.members_address,
city = item.members_city,
state = item.members_ssn,
zip = item.members_zip,
phone = item.members_phone },
new { @class = "btn btn-success" })
</td>[/code]
controller:
Thanks for your help,
Jay
View
<td>
@Html.ActionLink("Add Exam", "Create", "members_exams", new { id = item.members_id,
name = item.members_firstname,
lname = item.members_lastname,
mname = item.members_middlename,
ssn = item.members_ssn,
email = item.members_email,
address = item.members_address,
city = item.members_city,
state = item.members_ssn,
zip = item.members_zip,
phone = item.members_phone },
new { @class = "btn btn-success" })
</td>
I know id = item.members_id is cause the problem but how do I fix it to create a new exam. I have tried to eliminate the ID and use null after the parameters.
Controller:
public ActionResult Create(int? id, string name, string mname, string lname, string ssn, string email, string address, string city, string state, string zip, string phone)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
members_exams members_exams = db.members_exams.Find(id);
if (members_exams == null)
{
return HttpNotFound();
}
members_exams.members_id = id;
members_exams.members_exams_firstname = name;
members_exams.members_exams_middlename = mname;
members_exams.members_exams_lastname = lname;
members_exams.members_exams_ssn = ssn;
members_exams.members_exams_email = email;
members_exams.members_exams_address = address;
members_exams.members_exams_city = city;
members_exams.members_exams_state = state;
members_exams.members_exams_zip = zip;
members_exams.members_exams_phone = phone;
ViewBag.exams_id = new SelectList(db.exams, "exams_id", "exams_description");
ViewBag.members_exams_status_id = new SelectList(db.members_exams_status, "members_exams_status_id", "members_exams_status_description");
ViewBag.members_exams_types_id = new SelectList(db.members_exams_types, "members_exams_types_id", "members_exams_types_description");
ViewBag.schools_id = new SelectList(db.schools.OrderBy(x => x.schools_name), "schools_id", "schools_name");
return View(members_exams);
}
In a different try I have changed the route config:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Create",
url: "Members_exams/Create",
defaults: new { controller = "Members_exams", action = "Create" }
);
}
View - I have taken out the ID parameter:
@Html.ActionLink("Add Exam", "Create", "members_exams", new { name = item.members_firstname,
lname = item.members_lastname,
mname = item.members_middlename,
ssn = item.members_ssn,
email = item.members_email,
address = item.members_address,
city = item.members_city,
state = item.members_ssn,
zip = item.members_zip,
phone = item.members_phone },
new { @class = "btn btn-success" })
</td>[/code]
controller:
public ActionResult Create(int? id, string name, string mname, string lname, string ssn, string email, string address, string city, string state, string zip, string phone)
{
members_exams members_exams = new members_exams();
members_exams.members_id = id;
members_exams.members_exams_firstname = name;
members_exams.members_exams_middlename = mname;
members_exams.members_exams_lastname = lname;
members_exams.members_exams_ssn = ssn;
members_exams.members_exams_email = email;
members_exams.members_exams_address = address;
members_exams.members_exams_city = city;
members_exams.members_exams_state = state;
members_exams.members_exams_zip = zip;
members_exams.members_exams_phone = phone;
ViewBag.exams_id = new SelectList(db.exams, "exams_id", "exams_description");
ViewBag.members_exams_status_id = new SelectList(db.members_exams_status, "members_exams_status_id", "members_exams_status_description");
ViewBag.members_exams_types_id = new SelectList(db.members_exams_types, "members_exams_types_id", "members_exams_types_description");
ViewBag.schools_id = new SelectList(db.schools.OrderBy(x => x.schools_name), "schools_id", "schools_name");
return View(members_exams);
}
Thanks for your help,
Jay
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER