2

我想在 MVC4 中执行按钮单击事件。我是 MVC4 的新手,不知道在哪里编写事件、函数以及如何处理它们 b/w 模型、视图和控制。

有没有人有同样的想法?

如果有人帮助我详细解释和示例,我将不胜感激。

提前致谢。

4

2 回答 2

4

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>

这基本上是一个非常快速的要点。

于 2013-04-04T08:46:42.217 回答
3

我将从基础开始。您不需要 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();
    }
}
于 2013-04-04T12:06:07.287 回答