У меня есть ContactForm, который появляется на двух страницах, когда форма передается действие FormSubmit происходит, которая выглядит следующим образом:MVC 5 Форма, как я могу вернуть страницу, на которой я нахожусь, когда действие formubmit завершено?
public async System.Threading.Tasks.Task<ActionResult> FormSubmit(contactform model)
{
var current = Request.Url.OriginalString;
var response = Request["g-recaptcha-response"];
string secretKey = "keygoeshere";
var client = new WebClient();
var result = client.DownloadString(string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", secretKey, response));
var obj = JObject.Parse(result);
var status = (bool)obj.SelectToken("success");
ViewBag.Message = status ? "Google reCaptcha validation success" : "Please click on the recaptcha";
if (ModelState.IsValid && status)
{
try
{
var body = "<p>Email From: {0} ({1})</p><p>Message:</p><p>{2}</p>";
var message = new System.Net.Mail.MailMessage();
message.To.Add(new MailAddress("emailaddresshere"));
message.Subject = "Contact Us";
message.Body = string.Format(body, model.FirstName, model.LastName, model.number);
message.IsBodyHtml = true;
using (var smtp = new SmtpClient())
{
await smtp.SendMailAsync(message);
return RedirectToAction("Sent");
}
}
catch (Exception)
{
return View("Error");
}
}
else
{
return View("What goes here?");
}
Форма проверяет ReCaptcha, а затем проверяет поля с использованием модели «ContactForm» , Если recaptcha не заполняется или проверка не выполняется, в результате в данный момент возвращается «Return View();», который попытается вернуть действие «Formsubmit», которое ничего не возвращает, потому что это не представление.
Так я все равно понимаю. То, что я хотел бы сделать, - это действие, описанное выше, чтобы знать, на какой странице будет отправляться форма, и вернуть представление этой конкретной страницы. Я могу разместить отдельную страницу и вернуться туда, но тогда это означает, что мне нужны два отдельных действия «formubmit» или понравившиеся, по одному для каждой страницы. Есть ли способ вернуть представление на страницу, на которую отправляется форма?
Кроме того, пока я здесь, я хотел бы спросить, знает ли кто-нибудь, как я могу поддерживать ту же позицию на странице, когда я возвращаю это представление, и проверка не сработала?
Здравствуйте, спасибо за помощь, я попробовал ваше решение, и, поскольку он стоит, он просто возвращает меня на страницу «резервной», которую я установил. Я добавил скрытую часть @html в вершине самой формы контакта, которая отображается на двух страницах. Затем я добавил параметр 'string returnURL' в formubmit и оператор if, где раньше возвращался вид View(). Кажется, он не возвращает меня на ту же страницу? – Rob
Я действительно сделал ошибку, следуя вашим инструкциям, делает то, что вы сказали. Спасибо за совет. – Rob