Получение ответа 404 на выполнение формы POST для метода действия контроллера - PullRequest
0 голосов
/ 21 апреля 2020

В моем приложении у меня есть форма, которую я хочу опубликовать в методе контроллера. но когда я отправляю форму при нажатии кнопки ОК, это дает мне 404 ответа. Код как ниже

Форма - Форма html

Это контроллер

 public class JoinController : UserBaseController

Это метод внутри контроллера

 [HttpPost]
        public ActionResult ChallengeResponse(WorldpayChallengeResponseModel model)
        {
            if (model != null)
            {
                var returnData = _challengePaymentAuthorisationService.PaymentAuthorization("WorldPay", model.TransactionId);
            }

            return new RedirectResult("/");
        }

Чего-то не хватает?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

404 - это когда ваше действие не найдено. Возможно, ваш ChallengeResponse в порядке, но проблема в редиректе. Чтобы точно определить проблему, выполните следующие действия:

В вашем действии после следующей строки:

var returnData = _challengePaymentAuthorisationService.PaymentAuthorization("WorldPay", model.TransactionId);

// Запишите журнал в текстовый файл, чтобы мы знали нет никаких проблем с действием, и модель также не нулевая. Вы можете использовать следующий блок кода для записи журналов:

string filepath = context.Current.Server.MapPath("~/ExceptionDetailsFile/");

if (!Directory.Exists(filepath))  
{  
    Directory.CreateDirectory(filepath);
}  

filepath = filepath + DateTime.Today.ToString("dd-MM-yy") + ".txt";   //Text File Name
if (!File.Exists(filepath))  
{
    File.Create(filepath).Dispose();
}  

using (StreamWriter sw = File.AppendText(filepath))  
{  
    string error = "Log Written Date:" + " " + DateTime.Now.ToString();  
    sw.WriteLine("-----------Log on " + " " + DateTime.Now.ToString() + "-");  
    sw.WriteLine("--------------------------------------------------------");  
    sw.WriteLine(error);  
    sw.WriteLine("--------------------------------*End*------------------");  
    sw.Flush();  
    sw.Close();
} 

Если действие в порядке, то вместо следующего кода:

return new RedirectResult("/");

Пишите так:

return Redirect("~/");
0 голосов
/ 21 апреля 2020

Попробуйте добавить это к вашему виду, отбрасывая «действие» в вашей строке.

@using (Html.BeginForm("Challengeresponse","Join"))
{
your code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...