I need to do some calculations on an ASP.NET MVC View, an action different than the form submission. I\'ve tried various methods of passing the current Model on to a new con
[Saw your comments; I'll repost this answer here so you can mark the question resolved, and mark it community wiki so I don't get rep for it - Dylan]
Give your submit buttons a name, and then inspect the submitted value in your controller method:
<% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %>
<input type="submit" name="submitButton" value="Send" />
<input type="submit" name="submitButton" value="Cancel" />
<% Html.EndForm(); %>
posting to
public class MyController : Controller {
public ActionResult MyAction(string submitButton) {
switch(submitButton) {
case "Send":
// delegate sending to another controller action
return(Send());
case "Cancel":
// call another action to perform the cancellation
return(Cancel());
default:
// If they've submitted the form without a submitButton,
// just return the view again.
return(View());
}
}
private ActionResult Cancel() {
// process the cancellation request here.
return(View("Cancelled"));
}
private ActionResult Send() {
// perform the actual send operation here.
return(View("SendConfirmed"));
}
}
An action link just links to an action. It translates to a <a href="action">action</a>
tag. The action it links to has no idea about the state of the page it has just left.
You should probably be 'POST'ing to an action, but it's only going to send form data, not an object (although mvc can automatically map Form fields to an object).