2012-11-27 42 views
1

我是Asp.net MVC的新手,开发了一个应用程序,它有一个带有2个文本框的输入窗口和1个输出窗口。我在窗体中添加了按钮。现在我要在点击按钮事件的输出文本框中显示输出 。请让我知道如何在MVC4中做到这一点。如何处理MVC中的Click按钮事件

+0

请在发布之前查看[asp.net MVC标签](http://stackoverflow.com/tags/asp.net-mvc/info),并按照文档和教程参考。 –

+0

[ASP.NET MVC中的Button事件]的可能重复(http://stackoverflow.com/questions/4722935/button-event-in-asp-net-mvc) –

回答

2

ASP.NET MVC不能像ASP.NET WebForms一样工作。或者说,我应该说ASP.NET WebForms与网络的其他部分(!)不一样。

当您创建一个HTML表单时有一个action属性,该属性指定了应该处理表单提交的URL。当用户通过inputbuttontype="submit"通过type="submit"提交表单时,浏览器对该URL执行POST请求,包括表单中包含的数据默认使用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请求,但我们稍后会将其保留。