我想在MVC4中执行按钮点击事件。我是MVC4的新手,不知道在哪里编写事件,函数以及如何处理它们模型,视图和控件。
有没有人有同样的想法?
如果有人帮我详细解释和举例,我将不胜感激。
提前致谢。
答案 0 :(得分:3)
MVC 4基本上是无状态的,因此与Web窗体不同,没有“自动”方式将浏览器UI上的按钮单击连接到C#代码。
它的处理方式一般是当你点击一个按钮(例如<button>
?)时,它会通过AJAX或标准浏览器重定向触发HTTP请求。该HTTP请求由控制器上的操作处理。
所以说你有这个控制器:
public class MyController : Controller {
public string Foo() {
return "Bar!";
}
}
您可以在Razor中将您的标记和jQuery连接起来:
<button id="my-button">Call Foo!</button>
<script>
jQuery(function ($) {
$('#my-button').on('click', function () {
$.ajax({
url : '@Url.Action("Foo", "MyController")',
type : 'GET'
});
});
});
</script>
这基本上是一个非常快速的要点。
答案 1 :(得分:2)
我将从基础开始。你不需要jquery ......阅读http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx以了解asp.net MVC是如何工作的。
使用相同的名称在控制器中定义两个方法。使用HttpVerbs.Post定义的方法将是单击按钮(POST请求)时调用的方法。
在您的按钮周围放置一个指向您的方法的表单,当您单击该按钮时,它将运行以HttpVerbs.Post命名的方法。
查看强>
<form action="Home/MyMethod" method="post">
<input type="text" id="username" />
<button text="Click me" />
</form>
<强>控制器强>
public class HomeController : Controller
{
public ActionResult MyMethod()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyMethod(string username)
{
// notice the string username matches the <input id="username"...
// alternatively you can pass a FormCollection to this method.
return View();
}
}