Ich möchte submit
von meinem Markup zu einem ASP.net MVC Aktion verwenden.Durchführung submit (Postback) und Redirect mit ASP.net MVC
Dann möchte ich die Anfrage auf eine andere URL umleiten.
Kann ich das tun? Oder MVC entspricht nur Ajax?
Ich möchte submit
von meinem Markup zu einem ASP.net MVC Aktion verwenden.Durchführung submit (Postback) und Redirect mit ASP.net MVC
Dann möchte ich die Anfrage auf eine andere URL umleiten.
Kann ich das tun? Oder MVC entspricht nur Ajax?
Der Beitrag wird passieren, wenn Sie ein Html.BeginForm wie so verwenden:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult HandleForm(MyModel myModel)
{
// Do whatever you need to here.
return RedirectToAction("OtherAction", myModel);
}
public ActionResult OtherAction(MyModel myModel)
{
return View(myModel);
}
EDIT:
<% using(Html.BeginForm("HandleForm", "Home")) { %>
<fieldset>
<legend>Fields</legend>
<p>
<%= Html.TextBoxFor(m => m.Field1) %>
</p>
<p>
<%= Html.TextBoxFor(m => m.Field2) %>
</p>
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
<% } %>
Ihre Controller-Aktion dann eine Umleitung durchführen kann: Das oben gezeigte Beispiel Jetzt binden Sie mit dem folgenden Modell und können zwischen Aktionen übergeben werden:
public class MyModel
{
public string Field1 { get; set; }
public string Field1 { get; set; }
}
Der folgende Code veranschaulicht, wie ein Benutzer nach dem Senden eines Formulars an eine andere Aktion umgeleitet wird.
Wenn Sie die übermittelten Daten für die Aktionsmethode, auf die Sie umleiten möchten, beibehalten möchten, müssen Sie sie im Objekt TempData
speichern.
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
// Get the e-mail address previously submitted by the user if it
// exists, or use an empty string if it doesn't
return View(TempData["email"] ?? string.Empty);
}
[HttpPost]
public ActionResult Index(string email)
{
// Store the e-mail address submitted by the form in TempData
TempData["email"] = email;
return RedirectToAction("Index");
}
}
Ihre Index
Ansicht würde wie folgt aussehen:
@using (Html.BeginForm("Index", "Home"))
{
@* Will populate the textbox with the previously submitted value, if any *@
<input id="email" type="email" name="email" value="@Model" />
<button type="submit">Submit</button>
}
Wenn legt die viele Felder enthält. Gibt es ein Eingabeobjekt? –
Ich habe meine Antwort geändert, um zu zeigen, wie Eingabewerte zurück an die Controller-Aktion übergeben werden. – CAbbott