2

以下是控制器和视图。单击 [提交] 按钮时,应用程序会引发错误“找不到资源”。我知道使用 Get 和 Post 是 MVC 的非常基本的概念。是否可以通过一些实际场景让我清楚地了解何时使用 Get 和 Post 以及以下代码有什么问题。

控制器:

namespace MVCModelBinding.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
        [HttpPost, ActionName("Index")] 
        public ActionResult IndexPost()
        {
            if (Request.Form.Count > 0)
            {

                string id = Request.Form["ID"];

                string fname = Request.Form["FirstName"];

                string lname = Request.Form["LastName"];

                ViewBag.StatusMessage = "Employee data received successfully for ID " + id + "!";

            }

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

视图 (index.chtml)

@using (Html.BeginForm("IndexPost", "HomeController",FormMethod.Post))
{
    <table>
        <tr>
            <td>
                Employee ID
            </td>
            <td>
                @Html.TextBox("ID")
            </td>
        </tr>
        <tr>
            <td>
                First name
            </td>
            <td>
                @Html.TextBox("FirstName")
            </td>
        </tr>
        <tr>
            <td>
                Last Name
            </td>
            <td>
                @Html.TextBox("LastName")
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" value="Submit" />
            </td>
        </tr>
    </table>
}

谢谢

保罗

4

1 回答 1

7

表单使用的动作名称和控制器名称错误。它应该是

@using (Html.BeginForm("Index", "Home", FormMethod.Post))

动作名称只是"Index"因为那是您使用ActionNameAttribute. 控制器名称不应包含“控制器”后缀。

于 2012-05-12T12:25:09.877 回答