asp.net MVC表单POST在Localhost中工作,但在发布后无法正常工作

时间:2016-10-06 10:16:17

标签: asp.net-mvc-4 post http-status-code-404 iis-7.5

HomeController.cs:

 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();
        }

查看/主页/ Index.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 个答案:

答案 0 :(得分:0)

action标记中的form个网址可能有误:

  • 如果显示和发布数据的网址相同,则可以删除action="/Home/Index"
  • 如果您想指定网址,请使用action="@Url.Action("Index")"
    • 它会自动解析网址。

答案 1 :(得分:0)

在操作前使用 Html.fromHtml("<![CDATA[<font color='#145A14'>text</font>]]>"); 符号后,我的代码工作正常。 例如:

  

行动=&#34;〜/主页/索引&#34;

使用此标志后,我的代码正常运行。它减少了虚拟路径和物理路径之间的冲突。