如何处理MVC中的Click按钮事件

时间:2012-11-27 10:37:11

标签: asp.net asp.net-mvc

我是Asp.net MVC的新手,开发的应用程序有一个带有2个文本框用于输入和1用于输出的表单。我已经在表单中添加了按钮。现在我想显示输出 在单击按钮事件的输出文本框中。请让我知道如何在MVC4中做到这一点。

1 个答案:

答案 0 :(得分:2)

ASP.NET MVC与ASP.NET WebForms的工作方式不同。或者更确切地说,我应该说ASP.NET WebForms与Web的其余部分(!)不同。

创建HTML表单时,它具有action属性,该属性指定应处理表单提交的URL。当用户通过inputbutton type="submit"提交表单时,浏览器会对该网址发出POST个请求,包括使用表单中包含的数据默认情况下为application/x-www-form-urlencoded MIME类型(如果表单应包含文件上传,则不同)。

您的服务器端代码不应该响应单个UI事件,因为这不是Web的工作方式,WebForms只是给您一个HTTP抽象,以引诱您进入Web上不存在的控制感。 / p>

以下是两个处理表单GETPOST请求的示例操作方法:

public ActionResult Index()
{
    var model = new MyFormFields();
    return View(model);
}

[HttpPost]
public ActionResult Index(MyFormFields fields)
{
    if (!ModelState.IsValid)
    {
        return View(fields);
    }

    // do stuff with form data

    var model = new MyResultModel
    {
         Output = fields.Input // for e.g.
    };

    return View("Results", model);
}

这会响应表单提交,并使用结果视图模型呈现不同的视图。最佳做法建议在此处执行HTTP重定向,以便浏览器无法意外重新提交POST请求,但我们会将其保留以供日后使用。