我想在 MVC4 中执行按钮单击事件。我是 MVC4 的新手,不知道在哪里编写事件、函数以及如何处理它们 b/w 模型、视图和控制。
有没有人有同样的想法?
如果有人帮助我详细解释和示例,我将不胜感激。
提前致谢。
我想在 MVC4 中执行按钮单击事件。我是 MVC4 的新手,不知道在哪里编写事件、函数以及如何处理它们 b/w 模型、视图和控制。
有没有人有同样的想法?
如果有人帮助我详细解释和示例,我将不胜感激。
提前致谢。
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>
这基本上是一个非常快速的要点。
我将从基础开始。您不需要 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();
}
}