Ich habe ein Login-Formular mit "Passwort vergessen" -Link. Auf Login übermittelt ich eine andere Aktion nenne, während auf „Passwort vergessen“ -Link ich einige andere Aktion nenne:ActionLink mit httpPost auf demselben Controller in asp.net MVC 5
@Html.ActionLink("Forgot Password", "ForgotPassword", "Login", Model , new { @onclick = "return ValidateUsername();" })
Was ich brauche, ist es als POST zu senden statt GET.
Was ich habe, war eine ASP.NET WebForm-Lösung, die ich fast vollständig in ASP.NET MVC konvertiert habe. Ein Ort, an dem ich LinkButton benutzte. Das ist der einzige Flaschenhals.
Edit:
Jetzt verwende ich folgende JavaScript
$("a.anchor").click(function (e) {
e.preventDefault(); // This will stop default behavior
var validate = ValidateUsername();
if (validate) {
//alert(document.getElementById('usernameTextBox').value);
var str = document.getElementById('usernameTextBox').value;
$.ajax({
type: "POST",
url: "http://localhost/SSOMVC/Generic/ForgotPassword",
data: "data",
dataType: "text",
success: function (resultData) {
document.getElementById("usererror").textContent = resultData;
},
failure: function (error) {
}
});
}
});
@Html.ActionLink("Forgot Password", null, null, Model, new { @class = "anchor" })
public class GenericController : Controller
{
[HttpPost]
public ActionResult ForgotPassword(string data)
{
....
return Content(callResponse);
}
}
Ich weiß nicht, warum ich immer Daten als null in der Steuerung zu bekommen.
Ich glaube nicht, dass Sie das mit actionlink sogar tun können; Wenn Sie können, wird es in einer der Überladungen sein –
Sie können dieses Thema lesen: https://stackoverflow.com/questions/2048778/asp-net-mvc-actionlink-and-post-method – arslanaybars
Die Frage ist nicht klar 'Modell' können Sie in Modell direkt in ActionLink übergeben – umasankar