I only want to add the formId in the beginForm()
If i try usingHtml.BeginForm(null, null, FormMethod.Post, new {@id="Id"})
then the Html generated is<form action="/newquestion/payment/b9f88f80-f31f-4144-9066-55384c9f1cfc" ... >
i don't know how that action url is generated so i tried,Html.BeginForm(new {@id="Id"})
but then the action url looks like this<form action="/newquestion/payment/Id... >
In both the cases the action url is not what it should be and it is not hitting the post action of the controller.
BeginForm() will create a form on the page that submits its values to the server as a synchronous HTTP request, refreshing the entire page in the process. Ajax. BeginForm() creates a form that submits its values using an asynchronous ajax request.
BeginForm(HtmlHelper, String, String, Object, FormMethod, Object) Writes an opening <form> tag to the response and sets the action tag to the specified controller, action, and route values. The form uses the specified HTTP method and includes the HTML attributes.
Thanks for your help ! Multiple form tags should work fine in MVC unless they are nested.
When you are trying to generate a route, such as with BeginForm
, MVC will do its best to include things that you might need.
If you're at domain.com/Home/Index/b9f88f80-f31f-4144-9066-55384c9f1cfc
and you use the code that you have provided than the form will be generated with the action, controller and route values as it finds them.
controller / action / id
/Home / Index / b9f88f80-f31f-4144-9066-55384c9f1cfc
One way to get around this is to force id to be nothing (such as an empty string).
Observe:
@using (Html.BeginForm(null, null, new { @id = string.Empty },
FormMethod.Post, new { @id = "Id" }))
{
}
The new { @id = string.Empty }
is an anonymous object that represents the route values.
Change @id to id.
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "MyForm1" }))
{
<input id="submit" type="submit" value="Search" />
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With