asp.net MVC form POST работает в Localhost, но не работает после публикации

HomeController.цезий:

 public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Index(LoginInfo login)
        {
            if (Request.Form["Submit"] != null)
            {
                string Username = login.Username;
                string Password = login.Password;

                ViewBag.Massage = "";

                if (Username == "Admin" && Password == "123")
                {
                    ViewBag.Massage = "Login Successfull";

                    return RedirectToAction("MSISDN","UnSub");
                }
                else
                {
                    ViewBag.Massage = "Please Enter Valid Login Information";                    
                }
            }
            return View();
        }

Просмотры / Главная / Индекс.cshtml

<form name="myForm" action="/Home/Index"  method="post">
    <div align="center">
        <div style="color:red">@ViewBag.Massage</div>
        <br>
        <label for="Username">Username:</label>
        <input type="text" name="Username" id="Username">
        <label for="Password">Password:</label>
         <input type="password" name="Password" id="Password">
        <br>
        <input type="submit" name="Submit"value="Submit">

    </div>
</form>

Этот код отлично работает в моем localhost. Но когда я публикую свой проект на сервере IIS, он не работает. Он возвращается —

Ошибка сервера: 404 файл или каталог не найден.

Возможно, это конфликтует с моим физическим путем и запрошенным путем. Как решить эту проблему?? 🙁

2 ответа

  1. Url-actionадрес в formтеге может быть неправильным :

    • Если url для отображения и публикации данных один и тот же, можно удалить action="/Home/Index"
    • Если вы хотите указать url, пожалуйста, используйте action="@Url.Action("Index")"
      • Это автоматически разрешит Url.
  2. Мой код работает правильно после использования tilde (~)знака перед действием.
    Например:

    action= » ~ / Home / Index»

    После использования этого знака мой код работает правильно. Это уменьшает конфликты между виртуальным путем и физическим путем.