在ASP.net MVC中没有触发HttpPost

时间:2015-02-10 10:36:30

标签: asp.net asp.net-mvc

在我的应用程序中有两个文本框和一个按钮,我想在用户单击按钮时将文本提供给控制器。

我已经尝试过HttpPost,但它不起作用,这是我的代码:

查看

@model examplemvc1.Models.sample
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@Html.TextBoxFor(a=>a.username)
@Html.TextBoxFor(a=>a.password)
<input type="submit" value"button1" />

控制器

namespace examplemvc1.Controllers
{
    public class sampleController : Controller
    {
        //
        // GET: /sample/
        [HttpGet]
        public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Index(sample sam)
        {
            return View(sam);
        }
    }
}

模型

namespace examplemvc1.Models
{
    public class sample
    {
        public string username { get; set; }
        public string password { get; set; }
    }
}

2 个答案:

答案 0 :(得分:2)

您必须添加一个将发布到您的控制器的表单

@using (Html.BeginForm())
{
    @Html.TextBox("Name");
    @Html.Password("Password");
    <input type="submit" value="Sign In">
}

生成以下表单元素

<form action="/Original Controller/Original Action" action="post">

答案 1 :(得分:1)

应OP的要求:

@model examplemvc1.Models.sample
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
@using (Html.BeginForm())
{
    @Html.TextBoxFor(a=>a.username)
    @Html.TextBoxFor(a=>a.password)

    <input type="submit" value"button1" />
}