1

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

4

1 回答 1

2

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

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

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

下面是处理表单的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意外地重新提交请求,但我们稍后再做。

于 2012-11-27T11:08:21.110 回答