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