我是 Asp.net MVC 的新手,正在开发一个应用程序,该应用程序有一个表单,其中有 2 个文本框用于输入,1 个文本框用于输出。我也在表单中添加了按钮。现在我想在单击按钮的输出文本框中显示输出事件。请让我知道如何在 MVC4 中做到这一点。
问问题
4069 次
1 回答
2
ASP.NET MVC 与 ASP.NET WebForms 的工作方式不同。或者更确切地说,我应该说 ASP.NET WebForms 的工作方式与 Web 的其他部分不同(!)。
当你创建一个 HTML 表单时,它有一个action
属性来指定应该处理表单提交的 URL。当用户通过input
或button
with提交表单时type="submit"
,浏览器会POST
向该 URL 发出请求,包括application/x-www-form-urlencoded
默认使用 MIME 类型包含在表单中的数据(如果表单应该包含文件上传则不同)。
您的服务器端代码不应响应单个 UI 事件,因为这不是 Web 的工作方式,WebForms 只是为您提供了对 HTTP 的抽象,以引诱您进入 Web 上不存在的控制感。
下面是处理表单的GET
和POST
请求的两个示例操作方法:
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 回答